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还有其他参数,比如可以规定从第几个索引位置开始匹配,这个如果用的话自己去搜索吧。
  • 相关阅读:
    HDU 4472 Count DP题
    HDU 1878 欧拉回路 图论
    CSUST 1503 ZZ买衣服
    HDU 2085 核反应堆
    HDU 1029 Ignatius and the Princess IV
    UVa 11462 Age Sort
    UVa 11384
    UVa 11210
    LA 3401
    解决学一会儿累了的问题
  • 原文地址:https://www.cnblogs.com/meitian/p/5070255.html
Copyright © 2011-2022 走看看