`

java 判断字符串是否是整数

阅读更多

java 中,如何判断字符串是否是整数呢?

有两种方式:

方式一:通过正则表达式

/***
	 * 判断 String 是否int
	 * 
	 * @param input
	 * @return
	 */
	public static boolean isInteger(String input){
		Matcher mer = Pattern.compile("^[0-9]+$").matcher(input);
		return mer.find();
	}

 上述方法不完善,不能识别负数,比如识别不了“-9”,“+9”。多谢大家指教,改进如下:

/***
	 * 判断 String 是否是 int
	 * 
	 * @param input
	 * @return
	 */
	public static boolean isInteger(String input){
		Matcher mer = Pattern.compile("^[+-]?[0-9]+$").matcher(input);
		return mer.find();
	}

 测试代码如下:

@Test
	public void test_isInteger(){
		String input="123";
		System.out.println(input+":"+ValueWidget.isInteger(input) );
		
		input="000000000000009";
		System.out.println(input+":"+ValueWidget.isInteger(input) );
		
		input="-9";
		System.out.println(input+":"+ValueWidget.isInteger(input) );
		
		input="-09";
		System.out.println(input+":"+ValueWidget.isInteger(input) );
		
		input="--9";
		System.out.println(input+":"+ValueWidget.isInteger(input) );
	}

 运行结果:

123:true

000000000000009:true

-9:true

-09:true

--9:false

 

 

 

方式二:通过java 的异常

public static boolean isValidInt(String value) {
		try {
			Integer.parseInt(value);
		} catch (NumberFormatException e) {
			return false;
		}
		return true;
	}

 

1
7
分享到:
评论
10 楼 hw1287789687 2015-08-14  
使用Character.isDigit
public static boolean isNumeric(String str){  
        if(str == null){  
            return false;  
        }  
        for (int i = str.length();--i>=0;){  
            if (!Character.isDigit(str.charAt(i))){  
                return false;  
            }  
        }  
        return true;  
    }  
9 楼 zhuchao_ko 2013-11-06  
StringUtils.isNumeric("数值字符串")
from org.apache.commons.lang.StringUtils;
8 楼 hw1287789687 2013-09-24  
zrz_1989 写道
第一个:正则表达比较牵强,如果负数或者000000000000009你觉得如何

第二个:用异常机制来判断是否整数,如果对于unchecked类型个人认为应该是我们要解决的问题,并且这种方式对程序性能有些影响

建议笔者再贡献一个好方法吧

第一个:判断000000000000009 是没问题的。不过检查负数确实有问题。多谢指教
7 楼 QuarterLifeForJava 2013-09-23  
还有负数是吧。。晕。。。
return input.matches("[-]?[1-9][0-9]*|0");
6 楼 QuarterLifeForJava 2013-09-23  
return input.matches("[1-9][0-9]*|0");   

少了个0。。。
5 楼 QuarterLifeForJava 2013-09-23  
public static boolean isInteger(String input) {
		return input.matches("[1-9][0-9]*");
}


这样就可以了,求破!
4 楼 raymao 2013-09-23  
raymao 写道
zrz_1989 写道
第一个:正则表达比较牵强,如果负数或者000000000000009你觉得如何

第二个:用异常机制来判断是否整数,如果对于unchecked类型个人认为应该是我们要解决的问题,并且这种方式对程序性能有些影响

建议笔者再贡献一个好方法吧

^[+,-]*[1-9]{1}[0-9]*$ 这样?

^[+,-]?[1-9]{1}[0-9]*$
3 楼 raymao 2013-09-23  
zrz_1989 写道
第一个:正则表达比较牵强,如果负数或者000000000000009你觉得如何

第二个:用异常机制来判断是否整数,如果对于unchecked类型个人认为应该是我们要解决的问题,并且这种方式对程序性能有些影响

建议笔者再贡献一个好方法吧

^[+,-]*[1-9]{1}[0-9]*$ 这样?
2 楼 zrz_1989 2013-09-23  
应该是需要异常检查,上面说反了
1 楼 zrz_1989 2013-09-23  
第一个:正则表达比较牵强,如果负数或者000000000000009你觉得如何

第二个:用异常机制来判断是否整数,如果对于unchecked类型个人认为应该是我们要解决的问题,并且这种方式对程序性能有些影响

建议笔者再贡献一个好方法吧

相关推荐

    Java判断字符串是否是整数或者浮点数的方法

    以下是一个简单的Java方法,用于判断字符串`str`是否可以表示一个整数: ```java // 判断整数(int) private boolean isInteger(String str) { if (null == str || "".equals(str)) { return false; } // 正则...

    详解Java判断是否是整数,小数或实数的正则表达式

    在Java中使用正则表达式来判断字符串是否符合整数、小数或实数的格式是一种常见且有效的做法。在编程中,我们经常需要对输入的字符串进行格式验证,以确保它们符合预期的数值格式,尤其是在处理财务数据、用户输入...

    java判断字符串是正整数的实例

    在Java编程语言中,有时我们...总结来说,Java中判断字符串是否为正整数主要依赖于正则表达式和字符串匹配。这个实例提供了一种简单而直观的实现方式,但在实际项目中,你可能需要根据具体需求进行适当的优化和扩展。

    Java判断字符串是不是数字过程解析

    本文将深入解析Java中如何判断字符串是否为数字的方法,以及存在的问题和解决方案。 首先,我们可以从简单的基础开始,即判断字符串是否为空或null。在Java中,一个空字符串("")和null值显然不是数字。因此,我们...

    从控制台输入一串字符串,筛选整数输出。

    3. **字符串分割与处理**:对输入的字符串进行逐字符处理,并判断是否为整数。 #### 实现步骤详解 ##### 1. 引入必要的包 程序首先引入了必要的Java包: - `java.io.BufferedReader`:用于读取文本文件的便捷类...

    判断一个字符串或字符串中的一个字符是否为数字类型

    Python 提供了简单直观的方式来判断字符串是否全由数字组成。可以使用 `str.isdigit()` 方法,它会检查字符串中的每个字符是否都是数字(0-9)。例如: ```python s = "12345" if s.isdigit(): print("字符串是...

    JAVA 字符串 操作

    - `compareTo()`方法:基于Unicode值比较字符串,返回值可用来判断字符串的前后顺序。 4. 字符串拼接: - `+`运算符:可以连接两个字符串,例如`str1 + str2`。 - `StringBuilder`和`StringBuffer`类:用于大量...

    关于字符串相等的比较

    - 缺点:不是用来判断字符串是否完全相等,而是返回一个整数值表示字符串的排序关系。 4. **使用 `String.equals` 静态方法:** - Java 9 及更高版本引入了静态方法 `String.equals`。 - 示例:`String.equals(s...

    java字符串类型数字设置千分位分隔

    1. 判断字符串是否可以转换为数字。 2. 使用`DecimalFormat`实例,设置适当的模式(如`#,###.###`)。 3. 调用`format()`方法将数字转换为包含千分位分隔符的字符串。 注意,`DecimalFormat`和`NumberFormat`类在...

    java中字符串转整数及MyAtoi方法的实现

    在 Java 中,将字符串转换为整数是一种常见的操作,而 MyAtoi 方法是将字符串转换为整数的一种特殊实现方式。在本篇文章中,我们将详细介绍 Java 中字符串转整数及 MyAtoi 方法的实现。 首先,让我们了解为什么需要...

    JAVA 数组与字符串课程文档

    字符串的比较方法包括`equals()`用于判断字符串是否相等,`equalsIgnoreCase()`忽略大小写比较,`startsWith()`和`endsWith()`检查字符串是否以特定子串开始或结束,以及`compareTo()`和`compareToIgnoreCase()`进行...

    截取如下字符串“java程序教程”的前5个字节,字符串应该为“java程”,截取前6个字符,字符串也应该为“java程”,程序实现之.

    本文将基于标题和描述所提需求,详细探讨Java环境下实现字符串截取的方法以及相关知识点。 首先,要理解Java中字符串(String)和字节(byte)的区别。在Java中,字符串是一种对象类型,用于表示文本。而字节则是...

    java 去掉重复字符 三个方法

    这个方法利用了Java 8的特性,将字符串转换为整数流(每个字符的ASCII值),然后使用`distinct()`过滤重复,再通过`mapToObj()`将每个整数转换回字符,并最终使用`toArray()`生成新的字符串。 总结来说,去除Java...

    求字符串中的第一个数字

    字符串在 Java 中是一个对象,可以通过多种方式创建和操作。 #### 1.2 字符串方法 - **charAt(int index)**:返回指定索引处的字符。 - **substring(int beginIndex, int endIndex)**:返回一个新的字符串,它是此...

    JAVA字符串的用法

    * `startsWith(String s)`: 判断字符串是否以指定的字串开始。 * `endsWith(String s)`: 判断字符串是否以指定的字串结尾。 * `indexOf(int ch)`: 返回指定字符在字符串中的索引。 * `substring(int beginIndex)`: ...

    java代码笔记2010-06-12:java控制台输入各类型类实现;以及判断输入字符串里面是否有数字的两种方法:方法1:转换成字符数组;方法2:正则表达式。

    接下来,我们来看如何判断字符串中是否包含数字。这里提供了两种方法: 方法1:转换成字符数组 这种方法是遍历字符串的每个字符,然后逐一判断是否为数字。可以使用`Character.isDigit()`函数来完成这个任务: ``...

    java字符串 详解 java实例20

    - `startsWith(String prefix)`和`endsWith(String suffix)`:判断字符串是否以指定前缀或后缀开头或结束。 八、Java 8的字符串处理 Java 8引入了`StringJoiner`和`Stream`API,使得字符串处理更加简洁高效。例如,...

    Java精确截取字符串.doc

    以下是一种常见的解决方法,通过判断字符串中的每个字节来确定是否为中文字符,并据此进行截取: ```java public class StringTrimmer { private String str; private int counterOfDoubleByte; private byte b...

    javaScript 判断字符串是否为数字的简单方法

    结合`parseInt()`和`isNaN()`,我们可以编写一个简单的函数来判断字符串是否可以被解析为数字: ```javascript function isStringNumeric(str) { return !isNaN(parseInt(str, 10)); } isStringNumeric("123"); /...

Global site tag (gtag.js) - Google Analytics