0

文字列が「1」で始まる場合、変数falseを設定する必要がありますが、次のコードはtrue値を返しますか?「りんご」という言葉を試してみました。コードに問題はありますか?

String msgName=request.getParameter("msgName");
boolean insideIf=false; 

if(msgName.substring(0,1).equals("1"));
    {
        insideIf=true;
                System.out.println("if status :"+msgName.substring(0,1).equals("1"));

    } System.out.println("insideIf :"+insideIf);
4

5 に答える 5

7

それは:-)あなたのifの後にセミコロンがあります

String msgName=request.getParameter("msgName");
boolean insideIf=false; 

if(msgName.substring(0,1).equals("1"))
    {
        insideIf=true;
                System.out.println("if status :"+msgName.substring(0,1).equals("1"));

    } System.out.println("insideIf :"+insideIf);
于 2012-04-23T07:35:14.370 に答える
5
if(msgName.substring(0,1).equals("1"));

条件が true の場合、実際には空のステートメントを実行しています。その後、常にブロックを呼び出します。

{
    insideIf=true;
            System.out.println("if status :"+msgName.substring(0,1).equals("1"));

}

ソリューション:

  1. [あまりエレガントでない] - を削除します;
  2. いつでも設定できますinsideIf = msgName.substring(0,1).equals("1");- if-statement には特に理由はありません。式のブール値が必要なだけです!
    • を使用しString.startsWith()て、読みやすさをさらに向上させることもできます。
于 2012-04-23T07:37:25.983 に答える
4

ifステートメントの最後にセミコロンを追加したため、if-else条件はまったく実行されていません。これが私がうまくいくと思うものです

String msgName=request.getParameter("msgName");
 boolean insideIf=false; 

if(msgName.substring(0,1).equals("1"))
{
    insideIf=true;
            System.out.println("if status :"+msgName.substring(0,1).equals("1"));

} System.out.println("insideIf :"+insideIf);
于 2012-04-23T07:34:56.623 に答える
1

おそらく次のように選択します。

myString.startsWith('1');

そこは説明不要かと思います。

于 2012-04-23T07:36:04.987 に答える
1

これはエラー行です

if(msgName.substring(0,1).equals("1")); 

「;」があってはなりません if 文の後に ";" を置いているので、この if ループはここで終了し、次の行を順番に実行しています。

于 2012-04-23T07:37:51.193 に答える