Java 在switch语句中使用字符串,从用户获取输入
在下面的代码中,在编译过程中,我得到了“不兼容类型”错误。 如果我使用其他逻辑,比如charAt(0)和all,这就可以了。 在java switch语句中没有使用字符串的方法吗? 我正在使用JDK 7 谢谢Java 在switch语句中使用字符串,从用户获取输入,java,string,switch-statement,incompatibletypeerror,Java,String,Switch Statement,Incompatibletypeerror,在下面的代码中,在编译过程中,我得到了“不兼容类型”错误。 如果我使用其他逻辑,比如charAt(0)和all,这就可以了。 在java switch语句中没有使用字符串的方法吗? 我正在使用JDK 7 谢谢 import java.util.Scanner; class cCode { public static void Main(String args [])` { System.out.println("Enter country code\nChoic
import java.util.Scanner;
class cCode
{
public static void Main(String args [])`
{
System.out.println("Enter country code\nChoices: IND, USA, JPN, NZ, WI");
Scanner cc = new Scanner(System.in);
switch(cc)
{
case "IND":
System.out.println(cc+" refers to INDIA");
break;
case "USA":
System.out.println(cc+" refers to UNITED STATES");
break;
case "JPN":
System.out.println(cc+" refers to JAPAN");
break;
case "NZ":
System.out.println(cc+" refers to NEW ZEALAND");
break;
case "WI":
System.out.println(cc+" refers to WEST INDIES");
break;
default:
System.out.println("Invalid choice");
}
}
}
我想你应该这样做:
String theText = cc.next();
switch(theText) {
//your code.
}
希望这能解决您的问题。您可以通过从用户处获取输入来使用下面的代码
import java.util.Scanner;
public class cCode {
public static void main(String args[]) {
System.out.println("Enter country code\nChoices: IND, USA, JPN, NZ, WI");
Scanner cc = new Scanner(System.in);
String txt = cc.nextLine();
switch (txt) {
case "IND":
System.out.println(txt + " refers to INDIA");
break;
case "USA":
System.out.println(txt + " refers to UNITED STATES");
break;
case "JPN":
System.out.println(txt + " refers to JAPAN");
break;
case "NZ":
System.out.println(txt + " refers to NEW ZEALAND");
break;
case "WI":
System.out.println(txt + " refers to WEST INDIES");
break;
default:
System.out.println("Invalid choice");
}
}}
cc是扫描仪类型的对象,您正在将其与字符串进行比较。请尝试添加
String text=cc.nextLine()代码>在扫描器之后cc=新扫描器(System.in)代码>,然后对开关使用“文本”。ps:如果使用有效变量名,错误会更清楚。IE:Scanner-inputScanner…可能重复我怀疑OP需要在稍后打印时放入一个变量。我还收到了以下错误:java.util.Scanner[delimiters=\p{javaWhitespace}+][position=4][match valid=true][need-input=false][source closed=false][skiped=false][group separator=\,][decimal separator=\.][positive prefix=][否定前缀=\Q-\E][正后缀=][负后缀=][NaN字符串=\Q?\E][无限字符串=\Q∞\E] 是指新西兰修复了它。这是由于SoP的cc。您可以看到: