0

文字列内の文字 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);
}
}
4

7 に答える 7

2
private static boolean hasAnyB(String str) {
   return str.contains("B") || str.contains("b");
}
于 2013-11-08T09:19:09.127 に答える
1

このようなもの:

static boolean check(String str){
    if(str.indexOf('B')>0 || str.indexOf('b')>0 )
        return true;
    else
        return false;
}
于 2013-11-08T09:19:20.143 に答える
1

staticメソッド内にすべてのコーディングを展開するだけです

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

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

}
于 2013-11-08T09:22:07.660 に答える
1

正規表現を使用する組み込みmatches()メソッドを使用します。

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

正規表現を使用することは、大文字と小文字が混在する問題を処理するための近道です。

于 2013-11-08T09:20:32.367 に答える
1

カウントを取得するには、bまたはB行うことができます

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

hasB メソッドを使用する必要がある場合は、このようにすることができますが、かなり非効率的で必要以上に長くなります

int count = 0;
for(String ch: w.split("")) // one character at a time.
    if(hasB(ch))
       count++;
于 2013-11-08T09:23:01.037 に答える
0
private static boolean hasAnyB(String str) {
  return str.toLowerCase().contains("b");
}
于 2013-11-08T09:22:35.647 に答える
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;
}
于 2013-11-08T09:27:16.177 に答える