Java使用点滴

1、查找某个字符在字符串中第几次出现的位置

    /**
     * 查找某个字符在字符串中第几次出现的位置
     * @param string 要匹配的字符串
     * @param i 第几次出现
     * @param character 要匹配的字符
     * @return 出现的位置
     */
    public static int getCharacterPosition(String string ,int i,String character){
        // Matcher slashMatcher = Pattern.compile("/").matcher("hahah/hhh/af");
        Matcher slashMatcher = Pattern.compile(character).matcher(string);
        int mIdx = 0;
        //如果没有匹配的则返回-1
        int result=-1;
        while(slashMatcher.find()) {
            mIdx++;
            if(mIdx == i){
                //将匹配的结果返回
                result = slashMatcher.start();
                break;
            }
        }
        return result;
    }

2、查找某个字符在字符串中出现的次数

/**
     * 查找某个字符在字符串中出现的次数
     * @param str 字符串
     * @param token 某个字符
     * @return 出现的次数
     */
    public static int countToken(String str,String token){
        int count=0;
        while(str.indexOf(token)!=-1){
            count++;
            str = str.substring(str.indexOf(token)+token.length());
        }
        return count;
    }
时间: 2024-08-10 16:53:34

Java使用点滴的相关文章

【Java技术点滴】——代理模式及其对事务封装

背景 项目中我们会遇到这样的情况:在几个方法中加入相同的代码,这些代码是与业务无关的,并且以后有可能由于考虑不周或需求变动再或者是其他原因,我们需要对他们进行逐一进行改动.举个具体的例子,比如程序中的日志控制.事务控制等,这些功能是与业务无关的,但却需要将它们与我们的逻辑混在一起,达到一些特殊的需求. 这样的情况往往代码都是相同的,可以抽离出来,为了复用,我们可以将这些相同的代码单独封装成的方法,以供其他需要的地方调用,这样对于以后的修改就做到了只修改一处的效果,达到了程序的复用,但另外一个问题

【Java技术点滴】——XML解析方式比较

为什么? "它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据.是Internet环境中跨平台的.依赖于内容的技术,也是当今处理分布式结构信息的有效工具."XML被设计用来传输和存储数据: 他的平台无关性.语言无关性.系统无关性,给数据继承与交互带来了极大的方便.也因此使用XML的地方越来越常见. 方式 1.DOM--DocumentObject Model 像操作HTML

【Java技术点滴】——ThreadLocal封装JDBC事务操作

背景 在Java程序实现中,我们往往应用到事务的机制,在业务层进行事务开启,创建数据库连接,调用Dao层方法进行数据库访问,过程中需要将数据库连接Connection作为参数传递给Dao层方法.显而易见,这样的实现不利于Dao层方法的复用,当在不使用事务的情况下,我们是需要在Dao层方法中创建数据库连接的,这样Dao层方法免去Connection参数就可以使得方法更加独立.明确了,怎样解决这样的尴尬?对于此,我们使用了ThreadLocal进行解决. 基本介绍 "本地线程变量",可以理

[java学习点滴]jedis的简单使用

环境: idea.jedis 2.8.0.windows 7sp1 引入jar包: <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.0</version> </dependency> 封装简单类,可以用于分布式,引入了连接池 public final class JedisUtil

【java入门点滴】向上转型与向下转型

向上转型: 简单理解就是由 子类--->基类 转换的过程.在此过程中,唯一发生的事情就是“子类新增方法的丢失”.我个人理解这个过程是:子类--①-->基类--②-->子类(阉割版) 在过程 ①,会把子类扩展新增方法给丢弃掉: 在过程 ②,通过“后期绑定(多态)”,检测到子类对象:但是,需要注意的是:如果基类中有方法,而子类中并没有重新实现,那么依然会调用基类中的方法:具体参看下面的demo: 需要特别注意的是:“动态绑定”,不包含声明为private(private其实也被编译为了fin

【Java技术点滴】——Filter基本使用与扩展

背景 在程序实现的过程中我们往往碰到类似于这样的问题:为了防止后台接收数据不能乱码,我们需要在处理的Servlet中设置请求字符集,就会在每一个Servlet中加上这样的代码: request.setCharacterEncoding("GB18030"); 这样的代码就是在程序中写死了的,设置字符集的功能是不利于维护的,如果将来要修改为另外一种字符集类型,需要在每个Servlet中进行修改.如果要进行封装,同样面临每个Servlet都要调用的问题,而往往这种方法调用是与具体业务需求关

【Java技术点滴】——JSTL教程之分层思想

是什么? JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标准标签库,是Sun的一个标准,由apache的jakarta小组来实现.维护的. 为什么? 使用JSTL的最大的目的是帮助简化JSP页面作者(这个职位称为pageauthor)的日常工作.page author是指负责使用JSP实现Web应用程序表示层的人员.许多page author是不擅长使用任何编程语言的. page author面临着使用一种脚本语言(也因此他们被看成

【Java技术点滴】——精简实现图片处理

 引言: 对于图片的处理是很多项目中都会用到的,如一般的人事管理系统等,处理方式主要分为两大类: 1.图片文件存储与磁盘中,数据库中只保存相对应的文件名: 2.文件采用二进制的形式保存于数据库中. 第二种方案占用空间大,并且对二进制流的操作也较为占用资源,因此采用第一种方案进行处理的情况较为常见,常用于一般的系统应用中,正在进行中的drp项目中用到了图片上传.显示的功能处理,采用commons-fileupload1.1.1版本,可以实现多文件的上传功能. 实现: 引入相关jar包后,对方法

【java入门点滴】代理模式

所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用. 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用.代理模式是对象的结构模式. 在代理模式中的角色: ● 抽象对象角色:声明了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象. ● 目标对象角色:定义了代理对象所代表的目标对象. ● 代理对象角色:代理对象内部含有目标对