zoukankan      html  css  js  c++  java
  • Java的indexOf返回的是第一个匹配到的字符的索引位置,substring(a,b)获得字符串的一部分内容

    背景:我要实现一个功能,需要匹配两个字符串是否有相同的字符,所以就写了下面一个小方法,定义两个字符串a和b,循环遍历
    b,如果a中有b的子串就将匹配数量num+1
     
    遇到的问题:开始判断字符串中是否存在某字符的公式(a.indexOf(sub_key)>0。结果发现当第一个位置相同时,总是少一个匹配数量
     
    原因:indexOf返回的是第一个匹配的位置的索引位置,即第一位是0,而不是返回匹配的个数
              如果没有匹配上返回的是-1
     
    解决方案:只要结果不等于-1(或者说大于-1)就是匹配到了
     
    public int getmatchnum(String a,String b){
        int num = 0;
        for(int i =0;i<b.length();i++){
            String sub_key = b.substring(i,i+1);
            System.out.println(sub_key);
            int j = a.indexOf(sub_key);
            if (a.indexOf(sub_key)>-1){
                num = num +1;
                System.out.println(num);
            }
        }
     
    其他说明:substring(a,b)是取的子字符串,括号内a为索引起始位置,b为截止位置(不包括b位置的字符)
                   indexOf还有其他参数,比如可以规定从第几个索引位置开始匹配,这个如果用的话自己去搜索吧。
  • 相关阅读:
    《鱼嘤嘤小分队》第一次作业:项目选题
    第一次博客作业
    csp 201709-2 优先队列模拟
    csp 201403-2
    csp 201809-2 买菜
    JavaScript中伪协议
    修改placeholder的样式
    jQuery对象与DOM对象之间的转换方法
    a的样式
    Guid.NewGuid() 和 new Guid()的区别
  • 原文地址:https://www.cnblogs.com/meitian/p/5070255.html
Copyright © 2011-2022 走看看