2012-11-25 60 views
2

我無法得到我的頭。奇怪的操作與String.split與用戶輸入不同

System.err.println(convertPdfToText(save).split("3\\.8").length); 

如預期打印出的3

在事實的結果,我希望用戶能夠獲得相同。因此,當我運行這段代碼:

System.err.println(convertPdfToText(save).split(seperator).length); 

當用戶在JInputField進入了「3 \\ 8」,我得到的數組的長度返回爲1

到底是什麼在這裏發生?

回答

5

"\\"在Java程序中表示包含一個\的字符串。在你的情況下,用戶必須輸入3\.8才能得到由Java代碼"3\\.8"表示的字符串。

也就是說,你似乎是由Java的語法從外部源輸入的字符串(它把\"專門)和字符串之間的區別混淆(其中每個字符代表其自身)。

+0

肯定會是四個斜槓,而不是一個? – NightStrider

+0

不,你是對的 – NightStrider

+0

所以在我的例子中,\\表示爲單斜槓?以及如何將用戶輸入更改爲3.8以達到所需的輸入? – NightStrider