java字元串數字判斷
① java中判斷字元串是否為數字的幾種方法
1.使用Character.isDigit(char)判斷
char num[] = str.toCharArray();//把字元串轉換為字元數組
StringBuffer title = new StringBuffer();//使用StringBuffer類,把非數字放到title中
StringBuffer hire = new StringBuffer();//把數字放到hire中
for (int i = 0; i < num.length; i++) {
// 判斷輸入的數字是否為數字還是字元
if (Character.isDigit(num[i])) {把字元串轉換為字元,再調用Character.isDigit(char)方法判斷是否是數字,是返回True,否則False
hire.append(num[i]);// 如果輸入的是數字,把它賦給hire} else {title.append(num[i]);// 如果輸入的是字元,把它賦給title}}}
2.使用類型轉換判斷try {String str="123abc";
int num=Integer.valueOf(str);//把字元串強制轉換為數字
return true;//如果是數字,返回True
} catch (Exception e) {
return false;//如果拋出異常,返回False}
3.使用正則表達式判斷
String str = "";
boolean isNum = str.matches("[0-9]+");
//+表示1個或多個(如"3"或"225"),*表示0個或多個([0-9]*)(如""或"1"或"22"),?表示0個或1個([0-9]?)(如""或"7")
ps:這個方法只能用於判斷是否是正整數
② java中驗證字元串是不是數字的四種方法
判斷字元串是不是數字,大家可能會用一些java自帶的方法,也有可能用其他怪異的招式,比如判斷是不是整型數字,將字元串強制轉換成整型,不是數字的就會拋出錯誤,那麼就不是整型的了。但本文介紹的比較好的兩種方法:
1。java類庫自帶的方法:
public boolean isNum(String msg){
if(java.lang.Character.isDigit(msg.charAt(0))){
return true;}return false;}0202更新:發現以上方法寫得不夠到位,現在就改為下面的簡單說明了,至於具體的方法實現字元串判斷是否數字就不寫了。
java.lang.Character.isDigit(char ch) boolean
isDigit 只能作用於char,所以判斷字元串是否為數字,要一個一個拿出char進行判斷。
2。用正則表達式
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
這兩個包,接下來是代碼
public boolean isNumeric(String str){Pattern pattern = Pattern.compile(」[0-9]*」);
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){return false;}return true;}02
3。用正則表達式
③ Java 中怎樣判斷一個字元串全是數字
Java中判斷字元串是否全是數字:
可以使用正則表達式:
publicbooleanisNumeric(Stringstr){
Patternpattern=Pattern.compile("[0-9]*");
MatcherisNum=pattern.matcher(str);
if(!isNum.matches()){
returnfalse;
}
returntrue;
}
但是這個方法並不安全,沒有對字元串進行空校驗。
在程序執行的時候很容易拋出異常。
例如執行:
publicstaticvoidmain(String[]args){
Stringstr=null;
System.out.println(BarcodeChecksum.INSTANCE.isNumeric(str));
}
就會拋出異常:
Exceptioninthread"main"java.lang.NullPointerException
atjava.util.regex.Matcher.getTextLength(Matcher.java:1140)
atjava.util.regex.Matcher.reset(Matcher.java:291)
atjava.util.regex.Matcher.<init>(Matcher.java:211)
atjava.util.regex.Pattern.matcher(Pattern.java:888)
atcom.ossez.bcu.util.BarcodeChecksum.isNumeric(BarcodeChecksum.java:37)
atcom.ossez.bcu.util.BarcodeChecksum.main(BarcodeChecksum.java:53)
所以這個方法並不準確。
如果執行:
publicstaticvoidmain(String[]args){
Stringstr="";
System.out.println(BarcodeChecksum.INSTANCE.isNumeric(str));
}
將會返回 true。
這說明這個方法沒有對空字元串進行校驗。
可以使用 Apache 的 StringUtils.isNumeric() 函數進行判斷。
這個函數位於 org.apache.commons.lang.StringUtils; 中。
但是,需要注意,如果傳入參數為 "" 同樣也會你存在判斷不準確的情況,這時候需要首先對需要進行判斷的參數進行非空校驗,然後刪除傳入數據中的空格。
publicstaticvoidmain(String[]args){
Stringstr="";
System.out.println(StringUtils.isNumeric(str));
}
上面這個函數將會返回 true。
請先 trim 數據
④ java中怎麼判斷字元串是否全部為數字
答案:可以使用Java中的正則表達式來判斷字元串是否全部為數字。具體可以使用`matches`方法和正則表達式`"^[0-9]+$"`來判斷。如果返回`true`,則表示字元串全部為數字;如果返回`false`,則表示字元串不全是數字。
詳細解釋:
1. 正則表達式簡介:正則表達式是一種強大的文本處理工具,它使用特定的模式來描述一系列字元串的特徵。在Java中,可以使用正則表達式來進行字元串的匹配、查找和替換等操作。
2. 判斷字元串是否全為數字的方法:要判斷一個字元串是否全部由數字組成,可以使用Java中的`String`類的`matches`方法,結合正則表達式`"^[0-9]+$"`來進行判斷。這個正則表達式的含義是:從字元串的開始`^`到結束`$`,中間只能包含一位或多位數字。
3. 代碼示例:下面是一個簡單的Java代碼示例,展示了如何使用正則表達式判斷字元串是否全部為數字。
java
public class StringNumericCheck {
public static void main {
String str1 = "123456";
String str2 = "123a456";
System.out.println); // true,因為str1全是數字
System.out.println); // false,因為str2包含非數字字元
}
}
4. 結果解讀:如果`matches`方法返回`true`,則表示字元串中的每個字元都是數字;如果返回`false`,則表示字元串中包含非數字字元。通過這種方式,可以方便地判斷一個字元串是否完全由數字構成。