0

文字列の開始文字が大文字で始まるかどうかを確認し、コンソールに true または false を表示させる、非常に単純な文字列検証の問題に興味があります。私の理解では、これを実現するために System.console().printf("true", s) のようなものを呼び出す必要はありません。次のサンプル コードを使用して達成された同様の基本的な実装を見たことがあると断言できます。

public class Verify {
    public static boolean checkStartChar(String s) {
        if (s.startsWith("[A-Z]")) {
            return true;
        } else {
            return false;
        }
    }

    public static void main(String[] args) {
        String str = "abCD";
        checkStartChar(str);
    }
}

しかし、これを実行しても何も表示されません。T/F を返す前に条件付き出力を追加して、わずかな変更を加えると、たとえば

public class Verify2 {
    public static boolean checkStartChar(String s) {
        if (s.startsWith("[A-Z]")) {
            System.out.println("yep");
            return true;
        }
        else {
            System.out.println("nope");
            return false;
        }
    }

    public static void main(String[] args) {
        String str = "abCD";
        checkStartChar(str);
    }
}

コンソールに「はい」または「いいえ」のいずれかが表示されるため、問題は多少解決されますが、コンソールにtrueまたはfalseを表示したいだけなので未解決です。それでおしまい。アドバイス?

4

4 に答える 4

5

質問はすでに回答されているので、これを解決するために正規表現は必要ないことを指摘したいと思います(そしてそれらは高価な操作です)。あなたはそれをこのように簡単に行うことができます:

static boolean startsWithUpperCase(String toCheck)
{
    if(toCheck != null && !toCheck.isEmpty())
    {
        return Character.isUpperCase(toCheck.charAt(0));
    }
    return false;
}
于 2013-01-18T21:19:46.447 に答える
4

コンソールにtrueまたはfalseを表示したいだけなので、まだ解決されていません

メソッドを呼び出すcheckStartCharと値が返されますが、値がコンソールに出力されるわけではありません。戻り値の処理方法をコーディングする必要があります。戻り値を出力したい場合は、次のようにする必要があります。

System.out.println(checkStartChar(str));

checkStartCharメソッドの戻り値を出力します

于 2013-01-18T21:13:29.163 に答える
1
if(s.startsWith("[A-Z]")){

String.startsWith(prefix)はパラメーターとして正規表現を取りません。代わりに正規表現 APi を使用する必要があります。

Pattern p = Pattern.compile("[A-Z]");
Matcher m = p.matcher(new Character(s.charAt(0)).toString());
if(m.find()){
            return true;
}else{
    return false;
}
String str = "AbCD";
System.out.println(checkStartChar(str));

出力:

  true
于 2013-01-18T21:13:33.140 に答える
0

あなたのコードで checkStartChar(str); プログラムで使用されていないブール値を返しています。次に、trueまたはfalseを表示したい場合は、使用できます。System.out.println(checkStartChar(str));

于 2013-01-19T17:04:07.197 に答える