Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swtich语句语法错误_Java_Switch Statement - Fatal编程技术网

Java Swtich语句语法错误

Java Swtich语句语法错误,java,switch-statement,Java,Switch Statement,我试图测试我的用户是否提交了合理的数据,这些数据后来被格式化为整数。 switch语句的问题在哪里?:) x是一个字符串,以防测试数字。 尝试: x是一个字符串,以防测试数字。 尝试: 您正在打开x,这是一个字符串-除非您使用的是Java 7,否则不能在Switch语句中使用字符串 我认为错误实际上来自str.startsWith(),该方法希望获取一个字符串(您正在检查它的开头)并返回一个布尔值,您也无法打开它 更新更正代码以执行我认为您正在尝试执行的操作: void convert(Stri

我试图测试我的用户是否提交了合理的数据,这些数据后来被格式化为整数。 switch语句的问题在哪里?:)


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
的命令,但一般来说,最好将您正在使用的返回给调用它的函数。