我们如何检查包含任何字符的任何字符串怎么可能时间.... 例: 工程是一个字符串,包含完整字符串中'g'的次数
答案 0 :(得分:35)
我知道这是一个古老的问题,但是有一个选项没有得到解答,而且这个选项非常简单:
int count = string.length() - string.replaceAll("g","").length()
答案 1 :(得分:24)
试试这个
int count = StringUtils.countMatches("engineering", "e");
有关StringUtils的更多信息,请参阅以下问题:How do I use StringUtils in Java?
答案 2 :(得分:8)
我会使用Pattern
和Matcher
:
String string = "engineering";
Pattern pattern = Pattern.compile("([gG])"); //case insensitive, use [g] for only lower
Matcher matcher = pattern.matcher(string);
int count = 0;
while (matcher.find()) count++;
答案 3 :(得分:4)
虽然Regex可以正常工作,但这里并不是真的需要。您只需使用for-loop
为字符维护count
即可。
您需要将字符串转换为char数组: -
String str = "engineering";
char toCheck = 'g';
int count = 0;
for (char ch: str.toCharArray()) {
if (ch == toCheck) {
count++;
}
}
System.out.println(count);
或者,你也可以不转换到charArray
: -
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == toCheck) {
count++;
}
}
答案 4 :(得分:4)
String s = "engineering";
char c = 'g';
s.replaceAll("[^"+ c +"]", "").length();
答案 5 :(得分:2)
使用正则表达式[g]
查找字符并计算结果如下:
Pattern pattern = Pattern.compile("[g]");
Matcher matcher = pattern.matcher("engineering");
int countCharacter = 0;
while(matcher.find()) {
countCharacter++;
}
System.out.println(countCharacter);
如果您想要不区分大小写的计数,请在模式中将正则表达式用作[gG]
。
答案 6 :(得分:1)
这是一个非常古老的问题,但这可能有助于某人(&#34; _&#34;)
你可以简单地使用这段代码
public static void main(String[] args){
String mainString = "This is and that is he is and she is";
//To find The "is" from the mainString
String whatToFind = "is";
int result = getCountOf(mainString, whatToFind);
System.out.println(result);
}
public static int countMatches(String mainString, String whatToFind){
String tempString = mainString.replaceAll(whatToFind, "");
//this even work for on letter
int times = (mainString.length()-tempString.length())/whatToFind.length();
//times should be 4
return times;
}
答案 7 :(得分:1)
使用org.apache.commons.lang3包使用StringUtils类。 下载jar文件并将其放入Web应用程序的lib文件夹中。
int count = StringUtils.countMatches("engineering", "e");
答案 8 :(得分:0)
您可以尝试以下操作:
String str = "engineering";
int letterCount = 0;
int index = -1;
while((index = str.indexOf('g', index+1)) > 0)
letterCount++;
System.out.println("Letter Count = " + letterCount);
答案 9 :(得分:0)
您可以遍历它并保留所需字母的数量。
public class Program {
public static int countAChars(String s) {
int count = 0;
for(char c : s.toCharArray()) {
if('a' == c) {
count++;
}
}
return count;
}
}
或者您可以使用StringUtils来获取计数。
int count = StringUtils.countMatches("engineering", "e");
答案 10 :(得分:0)
您可以尝试Java-8方式。简单,简单且可读性强。
long countOfA = str.chars().filter(ch -> ch == 'g').count();
答案 11 :(得分:0)
这是一个古老的问题,它在Java中,但我将在Python中回答。这可能会有所帮助:
string = 'E75;Z;00001;'
a = string.split(';')
print(len(a)-1)