java判斷字元串是否是數字
1. 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:這個方法只能用於判斷是否是正整數
2. java 判斷字元串是否是數字
1.用JAVA自帶的函數
public static boolean isNumeric(String str){
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
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;
}
3.使用org.apache.commons.lang
org.apache.commons.lang.StringUtils;
boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");
http://jakarta.apache.org/commons/lang/api-release/index.html下面的解釋:
isNumeric
public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.
null will return false. An empty String ("") will return true.
StringUtils.isNumeric(null) = false
StringUtils.isNumeric("") = true
StringUtils.isNumeric(" ") = false
StringUtils.isNumeric("123") = true
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("ab2c") = false
StringUtils.isNumeric("12-3") = false
StringUtils.isNumeric("12.3") = false
Parameters:
str - the String to check, may be null
Returns:
true if only contains digits, and is non-null
上面三種方式中,第二種方式比較靈活。
第一、三種方式只能校驗不含負號「-」的數字,即輸入一個負數-199,輸出結果將是false;
而第二方式則可以通過修改正則表達式實現校驗負數,將正則表達式修改為「^-?[0-9]+」即可,修改為「-?[0-9]+.?[0-9]+」即可匹配所有數字。
3. Java中怎樣判斷一個字元串是否是數字
用正則表達式
public static boolean isNumericzidai(String str) {
Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
Matcher isNum = pattern.matcher(str); if (!isNum.matches()) { return false;
} return true;
}12345678
網上給出的最好的方法,可惜還是錯誤;首先正則表達式-?[0-9]+.?[0-9]+這里就錯誤
網上說:可匹配所有數字。
比如:
double aa = -19162431.1254;
String a = "-19162431.1254";
String b = "-19162431a1254";
String c = "中文";
System.out.println(isNumericzidai(Double.toString(aa)));
System.out.println(isNumericzidai(a));
System.out.println(isNumericzidai(b));
System.out.println(isNumericzidai(c));12345678
結果
falsetruetruefalse1234
正確的正則表達式是:-?[0-9]+\.?[0-9]*,點號.,是匹配任意字元,需要進行轉義。
4. java中判斷一個字元串是不是數字
Stringstr="123abc";
if(!"".equals(str)){
charnum[]=str.toCharArray();//把字元串轉換為字元數組
StringBuffertitle=newStringBuffer();//使用StringBuffer類,把非數字放到title中
StringBufferhire=newStringBuffer();//把數字放到hire中
for(inti=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
}
}
}
5. Java判斷字元串是否是數值
方法一:利用正則表達式
public
class
Testone
{
public
static
void
main(String[]
args){
String
str="123456";
boolean
result=str.matches("[0-9]+");
if
(result
==
true)
{
System.out.println("該字元串是純數字");}else{System.out.println("該字元串不是純數字");}}}方法
6. java中如何判斷String中的內容是否為數字
這里提供3種方法:
判斷字元串是否為數字:
1分解法
public static boolean isNumeric(String str){
for (int i = str.length() ; --i>=0 ; ){
if (!專Character.isDigit(str.charAt ( i ) ) ){
return false;
}
}
return true;
}
2>用正則表達式
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
3>用ascii碼屬
public static boolean isNumeric(String str){
for(int i=str.length();--i>=0 {
int chr=str.charAt ;
if(chr<48 || chr>57)
return false;
}
return true;
}
7. Java中怎樣判斷一個字元串是否是數字
ava中判斷字元串是否為數字的方法:
1.用JAVA自帶的函數
public static boolean isNumeric(String str){
for (int i = 0; i < str.length(); i++){
System.out.println(str.charAt(i));
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
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;
}
3.使用.apache.commons.lang
org.apache.commons.lang.StringUtils;
boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");
http://jakarta.apache.org/commons/lang/api-release/index.html下面的解釋:
isNumeric
public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.
null will return false. An empty String ("") will return true.
StringUtils.isNumeric(null) = false
StringUtils.isNumeric("") = true
StringUtils.isNumeric(" ") = false
StringUtils.isNumeric("123") = true
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("ab2c") = false
StringUtils.isNumeric("12-3") = false
StringUtils.isNumeric("12.3") = false
Parameters:
str - the String to check, may be null
Returns:
true if only contains digits, and is non-null
上面三種方式中,第二種方式比較靈活。
第一、三種方式只能校驗不含負號「-」的數字,即輸入一個負數-199,輸出結果將是false;
而第二方式則可以通過修改正則表達式實現校驗負數,將正則表達式修改為「^-?[0-9]+」即可,修改為「-?[0-9]+.?[0-9]+」即可匹配所有數字。
8. java如何做到判斷一個字元串是否是數字。
樓主看方法:
public class NumberDemo {
public static void main(String[] args) {
String str1="1122.2.2";
String str2="111";
String str3="111.2";
String str4="111s";
String str5="111.s";
String str6="1s11";
System.out.println(str1+":"+isNum(str1));
System.out.println(str2+":"+isNum(str2));
System.out.println(str3+":"+isNum(str3));
System.out.println(str4+":"+isNum(str4));
System.out.println(str5+":"+isNum(str5));
System.out.println(str6+":"+isNum(str6));
}
public static boolean isNum(String str){
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
}
}
結果:
1122.2.2:false
111:true
111.2:true
111s:false
111.s:false
1s11:false
9. java中判斷字元串是否為純數字
java中判斷字元串是否為純數字的方法如下:
方法一:Pattern語句
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Testone {
public static void main(String[ ] args){
String str="123456";
Pattern pattern = Pattern.compile("[0-9]{1,}");
Matcher matcher = pattern.matcher((CharSequence)str);
boolean result=matcher.matches();
if (result == true) {
System.out.println("該字元串是純數字");
}
else{
System.out.println("該字元串不是純數字");
}
}
}
方法二:正則表達式
<span style="white-space:pre"></span>
public static boolean isNumber(String str){
String reg = "^[0-9]+(.[0-9]+)?$";
return str.matches(reg);
}
10. java 編程 判斷字元串是否為【數值字元串】
我知道的方法中,兩種已經被你禁用了。只剩下逐個字元判斷的方法了。Character類有判斷字元是否為數字的方法isDigit
public static boolean isNumeric(String token) {
for (int i = 0; i < token.length(); i++) {
if (!Character.isDigit(token.charAt(i))) {
return false;//有一個字元不是數字則整個token不是數字,返回false
}
}
//都是數字返回true;
return true;
}