我試圖解析像"dd/mm/yyyy"
這樣的日格式,但是使用useDelimiter
,但遇到了一個奇怪的問題。我使用了下面的代碼,這在Ubuntu終端上運行良好。Ubuntu終端中的工作代碼,在Windows中不起作用Eclipse
Scanner k = new Scanner(System.in);
k.useDelimiter("/|\n");
String day,month,year;
day = k.next(); month = k.next(); year = next();
System.out.println(day + "/" + month + "/" + year);
int d = Integer.parseInt(day);
int m = Integer.parseInt(month);
int y = Integer.parseInt(year);
但是在Windows上,當我將此代碼複製到Eclipse,它在提供了一個錯誤:
int y = Integer.parseInt(year);
我發現是什麼原因造成這一點。當我打印「年份」時,它會打印2014年,但在2014
末尾有一些空白,因此整數未正確解析。我解決了這個改變的代碼在Eclipse中:
year = next().trim();
但是:
我的問題是,怎麼能是可能的,同樣的代碼工作在Ubuntu上而不是在Windows平臺上?
現在它沒事了,我明白你的意思了,謝謝。 – 2014-10-16 22:49:49
不僅僅是Ubuntu - 當Windows使用'\ r \ n'(回車,換行)時,幾乎所有的Unix系統都使用'\ n'(換行符)。 – hexafraction 2014-10-16 22:56:44