使用拆分函数拆分字符串以计算 "that" 的数量
Split a String using split function to count number of "that"
String str = "ABthatCDthatBHthatIOthatoo";
System.out.println(str.split("that").length-1);
由此我得到 4。这是正确的,但如果最后一个后面没有任何字母,那么它会显示错误的答案“3”,如 :
String str = "ABthatCDthatBHthatIOthat";
System.out.println(str.split("that").length-1);
我想计算给定字符串中 "that" 个单词的出现次数。
试试这个
String fullStr = "ABthatCDthatBHthatIOthatoo";
String that= "that";
System.out.println(StringUtils.countMatches(fullStr, that));
使用 apache 通用语言中的 StringUtils,这个 https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/src-html/org/apache/commons/lang/StringUtils.html#line.170
您可以指定一个限制来计算最终的 'empty' 令牌
System.out.println(str.split("that", -1).length-1);
使用 lastIndexOf() 找出子字符串 "that" 的位置,如果它位于字符串的最后位置,则将 cout 递增 1。
str.split("that").length doesn't count the number of 'that's . It counts the
number of words that have 'that' in between them
例如-
class test
{
public static void main(String args[])
{
String s="Hi?bye?hello?goodDay";
System.out.println(s.split("?").length);
}
}
这会return4,也就是用“?”隔开的字数。
如果你returnlength-1,在这种情况下,它将return3,这是问号数的正确计数。
But, what if the String is : "Hi????bye????hello?goodDay??"; ?
即使在这种情况下,str.split("?").length-1 也会 return 3,这是问号数量的错误计数。
str.split("that //or anything") 的实际功能 是创建一个字符串数组,其中所有 characters/words 由'that'(在本例中)。split() 函数return是一个字符串数组
所以,上面的 str.split("?") 实际上 return 一个字符串数组:{"Hi,bye,hello,goodDay"}
str.split("?").length 只是 return 数组的长度,其中 str 中的所有单词都用 '?' 分隔.
str.split("that").length 只是 return 数组的长度,其中 str 中的所有单词由'that'.
这是我link对问题的解决link
如有疑问请告诉我
希望对您有所帮助
public static void main(String[] args) throws Exception
{ int count = 0;
String str = "ABthatCDthatBHthatIOthat";
StringBuffer sc = new StringBuffer(str);
while(str.contains("that")){
int aa = str.indexOf("that");
count++;
sc = sc.delete(aa, aa+3);
str = sc.toString();
}
System.out.println("count is:"+count);
}
String str = "ABthatCDthatBHthatIOthatoo";
System.out.println(str.split("that").length-1);
由此我得到 4。这是正确的,但如果最后一个后面没有任何字母,那么它会显示错误的答案“3”,如 :
String str = "ABthatCDthatBHthatIOthat";
System.out.println(str.split("that").length-1);
我想计算给定字符串中 "that" 个单词的出现次数。
试试这个
String fullStr = "ABthatCDthatBHthatIOthatoo";
String that= "that";
System.out.println(StringUtils.countMatches(fullStr, that));
使用 apache 通用语言中的 StringUtils,这个 https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/src-html/org/apache/commons/lang/StringUtils.html#line.170
您可以指定一个限制来计算最终的 'empty' 令牌
System.out.println(str.split("that", -1).length-1);
使用 lastIndexOf() 找出子字符串 "that" 的位置,如果它位于字符串的最后位置,则将 cout 递增 1。
str.split("that").length doesn't count the number of 'that's . It counts the number of words that have 'that' in between them
例如-
class test
{
public static void main(String args[])
{
String s="Hi?bye?hello?goodDay";
System.out.println(s.split("?").length);
}
}
这会return4,也就是用“?”隔开的字数。 如果你returnlength-1,在这种情况下,它将return3,这是问号数的正确计数。
But, what if the String is : "Hi????bye????hello?goodDay??"; ?
即使在这种情况下,str.split("?").length-1 也会 return 3,这是问号数量的错误计数。
str.split("that //or anything") 的实际功能 是创建一个字符串数组,其中所有 characters/words 由'that'(在本例中)。split() 函数return是一个字符串数组
所以,上面的 str.split("?") 实际上 return 一个字符串数组:{"Hi,bye,hello,goodDay"}
str.split("?").length 只是 return 数组的长度,其中 str 中的所有单词都用 '?' 分隔.
str.split("that").length 只是 return 数组的长度,其中 str 中的所有单词由'that'.
这是我link对问题的解决link
如有疑问请告诉我
希望对您有所帮助
public static void main(String[] args) throws Exception
{ int count = 0;
String str = "ABthatCDthatBHthatIOthat";
StringBuffer sc = new StringBuffer(str);
while(str.contains("that")){
int aa = str.indexOf("that");
count++;
sc = sc.delete(aa, aa+3);
str = sc.toString();
}
System.out.println("count is:"+count);
}