0

重複の可能性:
Java で文字列を比較するにはどうすればよいですか?

私はStrings の配列を持っています。配列は次のように呼ばれMorseます:

private final static String[] Morse = {".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....",
    "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-",  ".-.", "...", "-", "..-",
    "...-" ,".--" ,"-..-", "-.--", "--..",".-.-.-","--..--","..--.." ,"|"};

private final static String[] Colours = {"red","green","white"};

次に、私のコードがあります:

char[] stringArray;
stringArray = converttoMorse(letter).toCharArray();

char ch;

for(int i=0;i<stringArray.length;++i)
{
    if(stringArray[i]== "." ) //Problem here
    {
        System.out.println(Colours[0]);
    }
    else if (stringArray[i] == "-" ) //Problem here
    {
        System.out.println(Colours[1]);
    }
    else
    {
        System.out.println(Colours[2]);
    }
}

これは私の実際のプログラムのほんの一部です。英語からモールスへの変換は完璧に機能しています。ただし、ドットとダッシュをそれぞれ文字列として「赤」と「緑」の色で示したいと思います(スペースは白を示します)。

このメソッドを使用してtoCharArray()、印刷された結果のモースを配列として分解しました。ただし、これらのドットとダッシュのそれぞれを特定の色に対応させることはできません。".-"たとえば、として表示したいと思い"red green"ます。これどうやってするの?そうするための具体的な方法はありますか?

4

3 に答える 3

4

stringArrayはですので、そのchar[]内容を と比較する必要がありますchar

必要なもの:

if (stringArray[i] == '.') 
// '.' is the dot character,
// "." is a String that contains only the dot character 

文字列を比較したい場合は、次の質問を読む必要があります: Java で文字列を比較するにはどうすればよいですか?

于 2013-01-27T21:48:03.987 に答える
0

私の見方では、あなたはを持っていますString[]、そしてあなたは結果がString[]赤緑を示すようになりたいです。そのために、正規表現と外部メソッドを少し使用します。char配列に移動するのは簡単ではないので、char配列をいじりたくありません。

注:これは、配列内に要素がないことを前提としています。そうでないnull場合、これは間違いなく爆発します。replaceAllこれを軽減するために、の前に単純なnullチェックを実行できます。

public static String[] convertToRedGreen() {
    // Since the array we want is static, our method is too.
    String[] redGreen = new String[Morse.length];
    for(int i = 0; i < Morse.length; i++) {
        redGreen[i] = Morse[i].replaceAll("[.]", " red ").replaceAll("[-]", " green ");
    }
    return redGreen;
}

これにより、次のString[]ようなものが得られます。

[ red  green ,  green  red  red  red ,  green  red  green  red ,  green  red  red ,  red ,  red  red  green  red ,  green  green  red ,  red  red  red  red ,  red  red ,  red  green  green  green ,  green  red  green ,  red  green  red  red ,  green  green ,  green  red ,  green  green  green ,  red  green  green  red ,  green  green  red  green ,  red  green  red ,  red  red  red ,  green ,  red  red  green ,  red  red  red  green ,  red  green  green ,  green  red  red  green ,  green  red  green  green ,  green  green  red  red ,  red  green  red  green  red  green ,  green  green  red  red  green  green ,  red  red  green  green  red  red , |]
于 2013-01-27T22:04:18.693 に答える
-1

== を使用して文字列を比較しないでください:ここを参照してください

于 2013-01-27T21:20:57.670 に答える