如果我有字符串「hello8459」和「1234」,我該如何去檢測哪一個字母字符?我一直在嘗試:字母字符檢查字符串
//Checking for numerics in an if...
Pattern.matches("0-9", string1);
但是它根本不起作用。任何人都可以建議嗎?
如果我有字符串「hello8459」和「1234」,我該如何去檢測哪一個字母字符?我一直在嘗試:字母字符檢查字符串
//Checking for numerics in an if...
Pattern.matches("0-9", string1);
但是它根本不起作用。任何人都可以建議嗎?
「0-9」與此匹配,字符串:「0-9」。 你可能打算做的是「[0-9] +」,它匹配一個或多個數字。
你也可以使用字符串的比賽(...)方法:
boolean onlyDigits = "1234578".matches("\\d+");
不過要小心,檢查「onlyDigits」之後解析到原始INT或長時:這可能是一個像123145465124657897456421345487454這樣的大數字不適合原始數據類型,但會通過匹配(...)測試!
乾杯,男人。我需要寫我自己的博客關於這種東西。它總是這樣一個簡單的答案,但你必須廣泛搜索!願上帝保佑Stackoverflow。再次感謝。 – Federer 2009-09-25 09:19:26
@myusername:不客氣! – 2009-09-25 13:16:44
一方面你問如何檢測字母字符,但你的代碼似乎試圖檢測數字。
對於數學運算:
[0-9]
對於字母:
[a-zA-Z]
這裏是一個另類,不涉及正則表達式的所有:
try {
Integer.parseInt(input);
// Input is numeric
}
catch(Exception) {
// Input is not numeric
}
我試過這個但是它不是很優雅嗎?我不想故意拋出異常......但我很高興我們都這樣想! – Federer 2009-09-25 09:20:59
你可能有權避免它。這也被稱爲「展望處理」,很多人都會皺眉。 – Fragsworth 2009-09-25 09:31:21
是的,你是對的。如果可能的話,最好避免例外情況。 (在C#中有一個TryParse,這使得這更容易。)也許這也可以幫助你[http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/數學/ NumberUtils.html] – oddparity 2013-08-17 19:21:14
你不想檢查是否有任何數字,你想檢查是否有任何不是一個數字(或至少這是你的曲線estion說,也許不是你的意思)。所以你想要否定你的角色類並搜索任何不是數字的東西,而不是試圖找到任何一個數字。當然也有空串。在代碼:
boolean isNumeric = !(str.matches("[^0-9]") || "".equals(str));
檢查所有字符的字符串的方法是把它變成一個字符數組:
char[] check = yourstring.toCharArray();
然後做一個for循環,檢查所有的字符單獨的:
for(int i=0; i < check.length; i++){
if(!Character.isDigit(check[i])){
System.out.println("Not numberal");
}
}
在Ruby中,String類中有一個名爲「string」.is_alphabet的方法嗎?它告訴如果字符串只包含字母字符或不。 但不幸的是,在Java中沒有方法來檢查是否字符串包含在它只有字母字符,但不用擔心,你可以這樣做
boolean isAlphabet = "1234".matches("[a-zA-Z]+") which'll returns false
boolean isAlphabet = "hello".matches("[a-zA-Z]+") which'll return true cause it contains only alphabet.
我想你的意思是你要嘗試檢測其中一個沒有按」有數字? – Dov 2009-09-25 12:55:56