2016-03-03 141 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

甜美,玩得開心你的計算:) –

相關問題