2011-10-17 79 views

回答

-1

請使用下面的代碼來調整您的字符串:

private String correct(String src) { 
    boolean found = false; 
    String tag = ""; 
    for (int i = 0; i < src.length(); i++) { 
     char c = src.charAt(i); 
     if (Character.isDigit(c)) { 
      tag += c; 
     } else { 
      if (found) { 
       break; 
      } else { 
       found = true; 
       tag += "."; 
      } 
     } 
    } 
    return tag; 
} 
+0

這永遠不會使它成爲字符串的全長(如果它遇到小數點提前或任何其他非數字字符),並且只檢索小數點後的一位數字... –

3

如果您先刪除空間,那麼該怎麼辦?

String resultString = subjectString.replaceAll("\\s", ""); 

然後解析它?

+0

嗨,謝謝你的回覆。當然,我先刪除所有空格。 – nKognito

+0

@nKognito如果您刪除所有空格,您的號碼中是否有空格? :O – FailedDev

+0

不要挖死人,但我只是碰到了這個。這是因爲空間實際上不是空間。用十六進制查看器,你會注意到它實際上是'002000'。此外,上面的代碼標記爲答案不會正確解析字符串,如果讓我們說你收到「1 1123.3445」 –

0

這將增加數字在遇到他們,如果不是它將測試一個數字以確定它是否爲.標記。如果是,它將追加它,否則跳過並保持添加數字,直到沒有更多數字要添加。

private String correct(String src) { 
    String tag = ""; 
    for (int i = 0; i < src.length(); i++) { 
     char c = src.charAt(i); 
     if (Character.isDigit(c)) { 
      tag += c; 
     } else if (c == '.'){ 
      tag += '.'; 
     } 
    } 
    return tag; 
}