我有一个String
数组,数组名为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()
方法将打印结果Morse分解为数组。但是,我无法将这些点和破折号中的每一个与其特定颜色对应。例如,我希望".-"
显示为"red green"
。我怎样才能做到这一点?有没有具体的方法呢?
答案 0 :(得分:4)
由于stringArray
是char[]
,您需要将其内容与char
进行比较。
你需要:
if (stringArray[i] == '.')
// '.' is the dot character,
// "." is a String that contains only the dot character
如果你想比较字符串,你应该阅读这个问题:How do I compare strings in Java?
答案 1 :(得分:0)
我看到它的方式,你有一个String[]
,你希望结果是String[]
来表示红绿色。为此,我们将使用一些正则表达式和外部方法。我甚至不想弄乱char数组,因为从那里开始到String数组会不那么简单。
注意:这假设您的数组中没有元素null
,或者这肯定会爆炸。您可以在replaceAll
之前进行简单的空值检查以缓解此问题。
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 , |]
答案 2 :(得分:-1)
请勿使用==来比较字符串:see here