在字符串中搜索特定字符

时间:2014-04-04 11:20:51

标签: java string text

我有一个字符串..我需要在这个字符串中搜索一些特定的文本,如果它存在需要返回的总数。 我知道如何归还特定地方的角色

String string = "Hi How are you";
b = string.contains("H")  ;

但我需要获得多个角色,例如..我需要搜索' A'和' S'在一个字符串中,我需要它的次数。

我将如何编写代码。我知道如何在特定地点搜索并搜索特定字符。但是如何超过我的角色并返回它的总数。

String string = "Hai How are you!"; 
char aChar = anotherPalindrome.charAt(9);

我知道它将重新获得第9名。

String string = "Niagara. O roar again!"; 
String roar = string.substring(5, 7);

我知道它会返回'如何'

4 个答案:

答案 0 :(得分:2)

您必须使用正则表达式。 Android为这类事情提供了Pattern class

答案 1 :(得分:1)

尝试使用indexOf()方法循环。

示例:

String exampleString = "Hai How are you!";
String searchedString = "H";
int index = exampleString.indexOf(searchedString , 0);
int counter = 0;

while(index != -1) {
    counter++;
    int index = exampleString.indexOf(searchedString , index);
}

System.out.println("The character " + searchedString  + " occurs " + counter + " times.");

答案 2 :(得分:1)

您可以创建一种方法来计算字符串中字符的频率:

public static int count(char character){
    return str.toUpperCase().split((""+character).toUpperCase()).length - 1;
}

然后使用如下所示的方法:

b = string.count('H');
b = string.count('A');

答案 3 :(得分:1)

你可以这样做这里可以搜索三个字符的AJS ..如果你需要搜索它的小字符就像'AaJaSs'那样..

String string;
 Pattern pattern = Pattern.compile("([AJS])"); //case insensitive
 Matcher matcher = pattern.matcher(String);
 int count = 0;
 while (matcher.find()) count++;