面试题:用四种方法统计下面字符串"葡萄"出现的次数
public class Test01{ public static void main(String[] args){ String str = "吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮"; //请用四种方法统计 葡萄 出现的次数 //第一种 /*String str1 = str.replace("葡萄"," "); char[] data = str1.toCharArray(); int count = 0; for(char a : data){ if(a == ' '){ count++; } } System.out.println(count);*/ //第二种 /*int count = 0; int x = 0; while(x != -1){ x = str.indexOf("葡萄"); if(x != -1){ count++; str = str.replaceFirst("葡萄",""); } } System.out.println(count);*/ //第三种 /* for(int x = 0; x < str.length() ; x++){ if(str.contains("葡萄")){ str = str.replaceFirst("葡萄",""); }else{ System.out.println(x); break; } }*/ //第四种 String[] data = str.split("葡萄"); if(!str.endsWith("葡萄")){ //这里startsWith("葡萄")在split时,会在开头产生空串 System.out.println(data.length -1); }else{ System.out.println(data.length); } //第五种 /*int count = 0; int x = 0; while(x != -1){ x = str.indexOf("葡萄"); if(x != -1){ if((x+2) < str.length()){ str = str.substring(x+2); } count++; } } System.out.println(count);*/ //第六种 /*String str2 = str.replace("葡萄",""); System.out.println((str.length() - str2.length())/2);*/ } }
注:https://blog.csdn.net/tomcmd/article/details/54881857