2011-10-09 67 views

回答

1

replaceAll用適當的正則表達式應該很好地工作。例如\\D會發現所有非數字字符,因此myString.replaceAll("\\D", "")能很好地工作:

String test2 = "72\n";  
    System.out.printf("\"%s\"%n", test2); 

    test2 = test2.replaceAll("\\D", ""); 
    System.out.printf("\"%s\"%n", test2); 

這得到棘手,如果我們允許非INT浮點數允許的語言環境相關的非數字字符,如單個.爲美國小數點,,爲其他位置。

+0

謝謝,我只是做了一個replaceall,它的工作 – Sean

3

\n是換行符,其中包括一種空格。 Java中的字符串有一個名爲trim()的方法,該方法返回字符串的副本,並刪除了前導空白和尾隨空白。

String a = "72\n"; 
String b = a.trim(); // "72" 
2

處理開頭和結尾空白的簡單方法是使用String.trim()

您可以使用replaceAll或類似的方法來刪除嵌入式的空白和其他「噪音」,但是您可能會冒着改變用戶意圖的風險。例如,嵌入式空間或逗號可能意味着用戶認爲他可以/應該輸入多個數字。在我看來,最好告訴用戶有一個錯誤,而不是嘗試修復錯誤並使其錯誤(從用戶的角度來看)。

因此,在這種情況下,我會說使用replaceAll不是一個好主意,因爲它可能會「修復」數字內的空白以及引導或拖尾它。