使用静态方法在字符串中搜索特定字符

时间:2013-11-08 09:15:38

标签: java static boolean

我必须制作一个计算字符串中字母B数的程序。我已经得到了那个部分,但它还要求我使用一个静态方法,根据字符串中是否包含任何B而返回true或false,我真的不知道如何使该部分适合。

import java.util.Scanner;
public class CountB {

// write the static method “isThisB” here
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter a string: ");
String w = keyboard.nextLine();
int count=0;
for (int i=0; i<w.length(); i++)
{
    if (w.charAt(i)=='B'||w.charAt(i)=='b')
    {
        count++;
    }
}
System.out.println("Number of B and b: "+ count);
}
}

7 个答案:

答案 0 :(得分:2)

private static boolean hasAnyB(String str) {
   return str.contains("B") || str.contains("b");
}

答案 1 :(得分:1)

这样的事情:

static boolean check(String str){
    if(str.indexOf('B')>0 || str.indexOf('b')>0 )
        return true;
    else
        return false;
}

答案 2 :(得分:1)

使用内置matches()方法,该方法使用正则表达式:

private static boolean hasB(String str) {
    return str.matches(".*[bB].*");
}

使用正则表达式是处理混合案例问题的近乎方法。

答案 3 :(得分:1)

只需在static方法中部署所有编码即

public static void main(String[] args) 
{
  methodOne("Pass string over here");
}

public static boolean methodOne(String s)
{
   return s.contains("B");

}

答案 4 :(得分:1)

要获得bB你可以做的次数

int bCount = w.replaceAll("[^Bb]", "").length();

如果你必须使用hasB方法,你可以像这样做,虽然它效率很低,而且需要的时间长于

int count = 0;
for(String ch: w.split("")) // one character at a time.
    if(hasB(ch))
       count++;

答案 5 :(得分:0)

private static boolean hasAnyB(String str) {
  return str.toLowerCase().contains("b");
}

答案 6 :(得分:0)

我能想到的最简单。

static boolean isThisB(String s, int count) {
    for(int i=0; i<s.lenght(); i++) {
        char c = s.charAt(i);
        if(c == 'b' || c == 'B')
            count ++;
    }

    return count > 0;
}