任意の文字を含む文字列をどのようにチェックできるか.... 例: エンジニアリングは文字列で、完全な文字列に'g'が 何回含まれているか
質問する
89739 次
12 に答える
49
これは古い質問であることは知っていますが、回答されていないオプションがあり、非常に単純なワンライナーです。
int count = string.length() - string.replaceAll("g","").length()
于 2015-01-29T08:29:05.587 に答える
31
これを試して
int count = StringUtils.countMatches("engineering", "e");
StringUtilsの詳細については、次の質問から学ぶことができます: Java で StringUtils を使用するにはどうすればよいですか?
于 2012-11-06T06:29:48.117 に答える
8
私は aPattern
とを使用します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++;
于 2012-11-06T06:28:09.647 に答える
5
正規表現は正常に機能しますが、ここでは実際には必要ありません。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++;
}
}
于 2012-11-06T06:30:45.160 に答える
4
String s = "engineering";
char c = 'g';
s.replaceAll("[^"+ c +"]", "").length();
于 2012-11-06T06:36:14.070 に答える
3
正規表現を使用[g]
して文字を見つけ、以下のように結果を数えます。
Pattern pattern = Pattern.compile("[g]");
Matcher matcher = pattern.matcher("engineering");
int countCharacter = 0;
while(matcher.find()) {
countCharacter++;
}
System.out.println(countCharacter);
大文字と小文字を区別しないカウントが必要な場合[gG]
は、パターンのように正規表現を使用します。
于 2012-11-06T06:27:48.380 に答える
1
これは非常に古い質問ですが、これは誰かを助けるかもしれません ("_")
このコードを使用するだけです
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 = countMatches(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;
}
于 2016-08-28T17:49:11.933 に答える
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");
于 2014-11-17T09:48:59.657 に答える
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);
于 2012-11-06T06:29:05.887 に答える