Java Swtich语句语法错误
我试图测试我的用户是否提交了合理的数据,这些数据后来被格式化为整数。 switch语句的问题在哪里?:)Java Swtich语句语法错误,java,switch-statement,Java,Switch Statement,我试图测试我的用户是否提交了合理的数据,这些数据后来被格式化为整数。 switch语句的问题在哪里?:) x是一个字符串,以防测试数字。 尝试: x是一个字符串,以防测试数字。 尝试: 您正在打开x,这是一个字符串-除非您使用的是Java 7,否则不能在Switch语句中使用字符串 我认为错误实际上来自str.startsWith(),该方法希望获取一个字符串(您正在检查它的开头)并返回一个布尔值,您也无法打开它 更新更正代码以执行我认为您正在尝试执行的操作: void convert(Stri
x是一个字符串,以防测试数字。 尝试:
x是一个字符串,以防测试数字。 尝试:
您正在打开x,这是一个字符串-除非您使用的是Java 7,否则不能在Switch语句中使用字符串 我认为错误实际上来自str.startsWith(),该方法希望获取一个字符串(您正在检查它的开头)并返回一个布尔值,您也无法打开它 更新更正代码以执行我认为您正在尝试执行的操作:
void convert(String str)
{
int i = 0;
switch (str.charAt(0)) {
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
i = Integer.parseInt(str);
break;
default:
System.out.println ("Should start with fixnumber");
}
System.out.println (i);
}
虽然较短的方法只是执行Integer.parseInt调用,并处理可能发生的NumberFormatException,但您根本不需要进行切换
void convert(String str)
{
try {
int i = Integer.parseInt(str);
System.out.println (i);
} catch (NumberFormatException e) {
System.out.println ("Should start with fixnumber");
}
}
您需要返回i并将方法签名从void转换为int,或以其他方式在i中公开数据以使其有价值 您正在打开x这是一个字符串-除非您使用的是Java 7,否则不能在Switch语句中使用String 我认为错误实际上来自str.startsWith(),该方法希望获取一个字符串(您正在检查它的开头)并返回一个布尔值,您也无法打开它 更新更正代码以执行我认为您正在尝试执行的操作:
void convert(String str)
{
int i = 0;
switch (str.charAt(0)) {
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case '0':
i = Integer.parseInt(str);
break;
default:
System.out.println ("Should start with fixnumber");
}
System.out.println (i);
}
虽然较短的方法只是执行Integer.parseInt调用,并处理可能发生的NumberFormatException,但您根本不需要进行切换
void convert(String str)
{
try {
int i = Integer.parseInt(str);
System.out.println (i);
} catch (NumberFormatException e) {
System.out.println ("Should start with fixnumber");
}
}
您需要返回i并将方法签名从void转换为int,或以其他方式在i中公开数据以使其有价值 您的
x
是一个字符串。switch语句正在尝试将其与整数值进行比较。你需要这样的东西:
switch (Integer.parseInt(x))
{
// etc...
编辑:事实上,现在我看到字符串应该是startsWith调用的结果,我完全不知道这段代码试图做什么。您的
x
是一个字符串。switch语句正在尝试将其与整数值进行比较。你需要这样的东西:
switch (Integer.parseInt(x))
{
// etc...
编辑:事实上,现在我看到字符串应该是startsWith调用的结果,我完全不知道这段代码试图做什么。如果您试图测试输入的字符串是否为整数,那么我认为没有理由首先使用
开关()。捕获尝试使用函数时引发的异常将是更好的行为
例如:
void convert(String str) { // Heads-up: convert has <package> visibility
int i = 0;
try {
i = Integer.parseInt(str);
System.out.println(i);
} catch (NumberFormatException nfe) {
System.out.println ("Should start with fixnumber");
}
}
void convert(String str){//Heads up:convert具有可见性
int i=0;
试一试{
i=整数.parseInt(str);
系统输出打印LN(i);
}捕获(NumberFormatException nfe){
System.out.println(“应以fixnumber开头”);
}
}
如果您试图测试输入的字符串是否为整数,那么我认为没有理由首先使用开关()。捕获尝试使用函数时引发的异常将是更好的行为
例如:
void convert(String str) { // Heads-up: convert has <package> visibility
int i = 0;
try {
i = Integer.parseInt(str);
System.out.println(i);
} catch (NumberFormatException nfe) {
System.out.println ("Should start with fixnumber");
}
}
void convert(String str){//Heads up:convert具有可见性
int i=0;
试一试{
i=整数.parseInt(str);
系统输出打印LN(i);
}捕获(NumberFormatException nfe){
System.out.println(“应以fixnumber开头”);
}
}
你的变量是字符串,你的测试是看它是否是int?!你也没有告诉我们你的行为。你看到什么错误了吗?如果是,什么?你的变量是字符串,你的测试是看它是否是int?!你也没有告诉我们你的行为。你看到什么错误了吗?如果是,什么?我想作者正在尝试测试字符串是否以数字开头。我最好跳过切换,执行parseInt并正确处理格式异常。我正在尝试使用不合适的方法解析字符串,谢谢charAt()和try catch,谢谢!!!我认为作者正在尝试测试字符串是否以数字开头。我最好跳过切换,执行parseInt并正确处理格式异常。我正在尝试使用不合适的方法解析字符串,谢谢charAt()和try catch,谢谢!!!是的,java抱怨.startsWith(),我也在尝试在游戏中加入布尔值。如何让它与java一起工作?帮忙,谢谢!取决于你想做什么。。。如果您试图将字符串转换为int,那么我将更新我的答案。如果您只是在控制台上打印,没有返回int
的命令,但一般来说,最好将您正在使用的返回给调用它的函数。是的,java抱怨.startsWith(),还有我试图在游戏中加入布尔值。如何让它与java一起工作?帮忙,谢谢!取决于你想做什么。。。如果您试图将字符串转换为int,那么我将更新我的答案。如果您只是在控制台上打印,则没有返回int
的命令,但一般来说,最好将您正在使用的返回给调用它的函数。