Java-字符中的重复大小写标签
由于未知的原因,在这个方法中,只有两个case块中出现了重复的case-label错误。当我在“O”字符上的每个字母飞溅错误中分离案例时,也会出现这种情况。是否可以在不将字母改为小写的情况下修复它Java-字符中的重复大小写标签,java,duplicates,label,case,Java,Duplicates,Label,Case,由于未知的原因,在这个方法中,只有两个case块中出现了重复的case-label错误。当我在“O”字符上的每个字母飞溅错误中分离案例时,也会出现这种情况。是否可以在不将字母改为小写的情况下修复它 Szyferka(String szyfr){ char []buf = szyfr.toCharArray(); int len=szyfr.length(); for(int i=0; i<len; i++){ switch(buf[i]){
Szyferka(String szyfr){
char []buf = szyfr.toCharArray();
int len=szyfr.length();
for(int i=0; i<len; i++){
switch(buf[i]){
case 'A' | 'B' | 'C': buf[i]='2';
case 'D' | 'E' | 'F': buf[i]='3';
case 'G' | 'H' | 'I': buf[i]='4';
case 'J' | 'K' | 'L': buf[i]='5'; //duplicate case label
case 'M' | 'N' | 'O': buf[i]='6'; //duplicate case label
case 'P' | 'Q' | 'R' | 'S': buf[i]='7';
case 'T' | 'U' | 'V': buf[i]='8';
case 'W' | 'X' | 'Y' | 'Z': buf[i]='9';
case '.': buf[i]='1';
case ' ': buf[i]='0';
}
}
}
问题是,您正在使用组合字符-这并没有提供我认为您期望的多个案例。相反,它只是将不同字符的Unicode值与按位OR操作相结合 这将向您显示出现重复案例错误的原因:
System.out.println('G' | 'H' | 'I');
System.out.println('J' | 'K' | 'L');
System.out.println('M' | 'N' | 'O');
所有三行打印79
你真的想要:
case 'A': case 'B': case 'C': buf[i]='2'; break;
case 'D': case 'E': case 'F': buf[i]='3'; break;
etc
我个人也会对此进行改革,但那是另一回事。请注意break语句
您可能还想考虑一个MAP,而不是Switter语句。
< P>问题是,您使用的是组合字符——这不是我希望的那样提供多个情况。相反,它只是将不同字符的Unicode值与按位OR操作相结合 这将向您显示出现重复案例错误的原因:System.out.println('G' | 'H' | 'I');
System.out.println('J' | 'K' | 'L');
System.out.println('M' | 'N' | 'O');
所有三行打印79
你真的想要:
case 'A': case 'B': case 'C': buf[i]='2'; break;
case 'D': case 'E': case 'F': buf[i]='3'; break;
etc
我个人也会对此进行改革,但那是另一回事。请注意break语句
您可能还想考虑一个MAP,而不是Switter语句。
< P>它们是按位运算符运行的: System.out.println'J'|'K'|'L'+'J'|'K'|'L'; System.out.println'M'|'N'|'O'+'M'|'N'|'O' 输出- “J”|“K”|“L”79“M”|“N”|“O”79它们起着位运算符的作用- System.out.println'J'|'K'|'L'+'J'|'K'|'L'; System.out.println'M'|'N'|'O'+'M'|'N'|'O' 输出- “J”|“K”|“L”79
“M”|“N”|“O”79@dasblinkenlight:谢谢,我会加上的。@dasblinkenlight:谢谢,我会加上的。