我需要一個正則表達式我想看看一個字符串是否只有一個double,但它可以是任意長度,任何建議?如何確保一個字符串只有任意長度的兩倍?
回答
您可以嘗試將字符串轉換爲double並在發生異常時捕獲異常?
try{
Double aDouble = Double.parseDouble(aString);
}catch (NumberFormatException nfe){
// handle it not being a Double here
}
謝謝比爾......只是在研究如何格式化。 – 2009-10-28 15:56:30
通常我認爲這是一種反模式(嘗試一些東西,然後捕捉異常,如果它不工作)。但我不知道爲什麼 - 這是完全有效的 - 我只是儘量避免在可能的情況下進行。不幸的是,我認爲這裏沒有更好的測試。 – Tenner 2009-10-28 16:00:10
@Tenner你應該認爲它是一種反模式,因爲它意味着捕捉程序流的異常。但我責備API開發人員不包括Double.tryParseDouble()方法 – 2009-10-28 16:03:42
嘗試^(\d+|\d+\.|\d*\.\d+)[dD]?$
雙將匹配以下正則表達式:
^[-+]?\d*\.?\d+([eE][-+]?\d+)?$
注意,對於Java的String你需要躲避反斜槓,那\d
是[0-9]
的簡寫。
如果我正確地把你的意思,這正則表達式可能會奏效
"/^[+-]?\d+\.\d+$/"
在英語 - > A +或 - 號(也許)後面跟着一個或多個數字後跟一個。 (小數點)後跟一個或多個數字。此正則表達式假定數字未用逗號格式化,還假定小數點分隔符是在所有語言環境中都不爲真的點。
我從perldoc faq4偷了這個表達式 - 「是一個十進制數」。
import java.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
Pattern pattern =
Pattern.compile("^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)$");
System.out.println(((Boolean) pattern.matcher("1").find()).toString());
System.out.println(((Boolean) pattern.matcher("1.1").find()).toString());
System.out.println(((Boolean) pattern.matcher("abc").find()).toString());
}
}
打印:
true
true
false
- 1. 如何確保在一個字符串中只有一個http://?
- 2. 什麼是「使用兩倍於寬度的長度打印字符串」。意思?
- 3. 從任意長度的字符串中提取子字符串
- 4. C++字符串替換字符串的任意長度
- 5. 字符串的長度倍數爲3
- 6. 如何讀取任意長度的字符串?
- 7. 如何將字符串轉換爲任意長度的整數
- 8. 如何從長度爲28的兩個唯一字符串中生成長度爲28的唯一字符串?
- 9. 製作一個長長的字符串有一個最大長度,試圖保持其意義
- 10. varchar或文本的字符串長度只有360個字符
- 11. Python字符串長度的兩個值
- 12. 確定會話ID字符串長度以確保唯一性
- 13. 只有字符串長度大於2的子字符串
- 14. 如何使用HTML/CSS刷新任意長度的兩個字符?
- 15. 如何在python中生成具有特定長度的任意字符串?
- 16. 一個字符串的字節長度
- 17. 如何返回一個固定長度的字符串一個字符串的?
- 18. 任意字符串到常量長度小寫字母數字字符串
- 19. 如何操縱一個字符串等於另一個字符串的長度?
- 20. 如何用一個未知長度的字符串替換一個字符串?
- 21. 如何用一個字符串「填充」一個可變長度的字符串?
- 22. 如何「成長」一個字符串到想要的長度
- 23. 將字符串填充到任意長度的方法
- 24. 任意長度的字符串和空間正則表達式
- 25. 使用DateTimeFormatter解析任意長度的日期字符串
- 26. 在Postgresql中存儲任意長度的字符串
- 27. 只有長度的正則表達式 - 任何字符
- 28. 拉出一個不確定長度的字符串的子字符串
- 29. 找到一個字符串的長度
- 30. 返回一個字符串的長度
的NumberUtils是您的終極目標,以確定是否爲'Double.parseDouble通話(...)'會拋出一個異常? – 2009-10-28 15:50:16
我會想,只要嘗試做什麼亞當說,並處理任何異常的捕獲.. – 2009-10-28 15:52:36
「任何長度」部分似乎表明他想解析任意長的「nnnnn.nnnE +/- nnnn」,而不是http ://en.wikipedia.org/wiki/IEEE_754-2008。 – alphazero 2009-10-28 15:55:35