2016-03-03 97 views
0

刚刚进入java,绝对初学者。使用NetBeans IDE8.1线程“主”异常java.util.regex.PatternSyntaxException:

这里有一个简单的程序,我从一个文本,它内置 'OK' 逐字输入:

package volume2; 

import java.util.Scanner; 


public class Volume2 { 

    public static void main(String[] args) 
    { 
    final double BOTTLE_VOLUME = 2; 
    final double LITER_PER_OUNCE = 0.0296; 
    final double CAN_VOLUME = 12 * LITER_PER_OUNCE; 

    System.out.print("Please enter the number of bottles: "); 

    Scanner in = new Scanner(System.in); 
    int bottles = in.nextInt(0); 

    double totalVolume = bottles * BOTTLE_VOLUME; 

    System.out.print("Please enter the number of cans: "); 
    int cans = in.nextInt(0); 

    double additionalVolume = cans * CAN_VOLUME; 

    totalVolume = totalVolume + additionalVolume; 

    System.out.print("Total volume: "); 
    System.out.println(totalVolume); 

    // TODO code application logic here 
} 

}

然而,这里的输出:

运行:

线程“main”中的异常java.util.regex.PatternSyntaxException: Unclosed char acter class near index 525(etc ...) ^ at java.util.regex.Pattern.error(Pattern.java:1955)at java.util.regex.Pattern.clazz(Pattern.java:2548)at java.util.regex.Pattern.clazz(Pattern.java:2504)at java.util.regex.Pattern.clazz(Pattern.java:2504)at java.util.regex.Pattern.clazz(Pattern.java: 2504)在 java.util.regex.Pattern.clazz(Pattern.java:2504)在 java.util.regex.Pattern.clazz(Pattern.java:2504) 等....

(我知道我不适合使运行文本和代码正确无误,所以如果在这些论坛上有关于如何正确分步的链接,请告诉我们。 “我如何发布......”没有指定如何发布运行输出)。

+0

您是否尝试过编译主类中的任何内容?这个错误听起来像它与你的设置有关。包括完整的堆栈跟踪会有所帮助。 – Julie

+0

除了完整的堆栈跟踪之外,还会在提示处发布您输入的内容。 –

+0

完整的堆栈跟踪,意味着整个运行输出?我试图在这里发布它作为回应,但字符太多。其实,事实证明该程序没有建立好,我不能输入任何输入。 – planks

回答

0

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextInt()

方法nextInt()是一个重载方法,一种形式中没有参数,和一种形式服用一个整数参数,其是被读取的数的基数。你在你的代码中使用后者,并提供一个基数为0的值,这是无效的。我假设你输入的是10位数字,所以你可以使用无参数形式。

int bottles = in.nextInt(); 
    ... 
    int cans = in.nextInt(); 
+0

是的,工作。谢谢! – planks

+0

甜美,玩得开心你的计算:) –

相关问题