怎样在一个字符串中查找它的一个子串,并记下子串的个数例如在"student study start"中查找"st",并记下"st"的个数

解决方案 »

  1.   

    indexOf(String str) 
              返回第一次出现的指定子字符串在此字符串中的索引。
    split(String regex) 
              根据给定的正则表达式的匹配来拆分此字符串。
    substring(int beginIndex, int endIndex) 
              返回一个新字符串,它是此字符串的一个子字符串。
    replace(char oldChar, char newChar) 
              返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 而生成的。--------------------------------------------
    这些东东  lz自己想想  组合一下都可以达到想要的结果~
      

  2.   

    substring()得到该字符串的字串,
    但是先得用indexOf(“st”)得到该字串的第一次出现的位置 ,同时用lastIndexOf(“st”)的得到最后的位置,依次就可以得到全部的,但这样效率不高,建议用正则表达式
      

  3.   

    substring(int beginIndex, int endIndex)  
    用这个方法就可以实现了。
      

  4.   

    我写了个较简单的,可能会给你点提示。
    public class Substring {
    //private String[] str = {"Aabcdeabdabcfgabcg","abc"};
    private String str1 = "Aabcdabceabcgabc";
    private String str2 = "abc";

    public Substring() {
    System.out.println(str1.length());
    System.out.println(str2.length());
    }

    public String getStr() {
    return str1;
    }

    public String getSubstr() {
    return str2;
    }

    public int countStr() {
    int i = 0;
    int count = 0;

    while((i + str2.length()) <= str1.length()) {
    //System.out.println(str1.substring(i,i+str2.length()));
    if(str2.equals(str1.substring(i,i+str2.length()))) {
    count++;
    i = i + str2.length(); 
    } else {
    i++;
    }
    }
    return count;
    }

    public static void main(String[] args) {

    Substring sub = new Substring();

    System.out.println("-------------------------------");
    System.out.println("字符串A: " + sub.getStr());
    System.out.println("字符串B: " + sub.getSubstr());
    System.out.println("-------------------------------");
    System.out.println("字符串A中有" + sub.countStr() + "个字符串B:");
    }
    }
      

  5.   


             package zhao;import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test 

        
         public static void main(String args[]) 
         { 
             String s ="student study start";
             Pattern p = Pattern.compile("\\s*st");
             Matcher m = p.matcher(s);
             int i = 0;//st的个数
             while(m.find()) {
              i++;
             }
             System.out.println(i);
         } 
      

  6.   

    不过像 "aaaaaaa" 这样的字符串,子串"aa"的个数应该是多少呢?
      

  7.   

    我这个应该最简单吧
    public static void main(String[] args) {
    // TODO 自动生成方法存根
    String str = "student study start";
    String[] str1 = str.split("st");
    if(str.contains("st")){
    System.out.println("st的数目为:" + (str1.length -1) + "个");
    }
    else
    System.out.println("没有找到");
    }
      

  8.   

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test 

        
         public static void main(String args[]) 
         { 
             String s ="student study start";
             Pattern p = Pattern.compile("\\s*st");
             Matcher m = p.matcher(s);
             int i = 0;//st的个数
             while(m.find()) {
                 i++;
             }
             System.out.println(i);
         } 

      

  9.   


    这个方法会有bug,大家试试看~~ ^+^
      

  10.   


    送上一个测试的字符串 "student study st"