嗨我有一個字符串「72 \ n」當我嘗試使用Integer.parseInt(「72 \ n」)它給我一個日誌錯誤,無法解析' 72'爲整數。我能做些什麼來濾除\ n?將字符串轉換爲int如果字符串中有其他字符
感謝
嗨我有一個字符串「72 \ n」當我嘗試使用Integer.parseInt(「72 \ n」)它給我一個日誌錯誤,無法解析' 72'爲整數。我能做些什麼來濾除\ n?將字符串轉換爲int如果字符串中有其他字符
感謝
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浮點數允許的語言環境相關的非數字字符,如單個.
爲美國小數點,,
爲其他位置。
\n
是換行符,其中包括一種空格。 Java中的字符串有一個名爲trim()
的方法,該方法返回字符串的副本,並刪除了前導空白和尾隨空白。
String a = "72\n";
String b = a.trim(); // "72"
處理開頭和結尾空白的簡單方法是使用String.trim()
。
您可以使用replaceAll
或類似的方法來刪除嵌入式的空白和其他「噪音」,但是您可能會冒着改變用戶意圖的風險。例如,嵌入式空間或逗號可能意味着用戶認爲他可以/應該輸入多個數字。在我看來,最好告訴用戶有一個錯誤,而不是嘗試修復錯誤並使其錯誤(從用戶的角度來看)。
因此,在這種情況下,我會說使用replaceAll
不是一個好主意,因爲它可能會「修復」數字內的空白以及引導或拖尾它。
謝謝,我只是做了一個replaceall,它的工作 – Sean