java字符串包含数字字母_Javastring – 查看一个string是否只包含数字而不是字母...

如果您将以文本forms处理该数字,请更改:

if (text.contains("[a-zA-Z]+") == false && text.length() > 2){

至:

if (text.matches("[0-9]+") && text.length() > 2) {

而不是检查string不包含字母字符,检查确保它只包含数字。

如果你真的想要使用数值,可以使用Integer.parseInt()或者Double.parseDouble()正如其他人已经解释过的那样。

作为一个方面的说明,通常认为比较布尔值与true或false是不好的做法。 只要使用if (condition)或if (!condition) 。

您也可以使用Apache Commons中的NumberUtil.isNumber(String str)

这是我将如何做到这一点:

if(text.matches("^[0-9]*$") && text.length() > 2){ //... }

$将避免部分匹配,例如; 1B 。

在Java中有很多工具可以从String获取数字(反之亦然)。 你可能想跳过正则expression式部分,以避免复杂的。

例如,您可以尝试查看Double.parseDouble(String s)为您返回的内容。 如果在string中找不到合适的值,它应该抛出一个NumberFormatException 。 我会build议这种技术,因为你实际上可以使用由String表示的值作为数字types。

import java.util.*; class Class1 { public static void main(String[] argh) { boolean ans = CheckNumbers("123"); if (ans == true) { System.out.println("String contains numbers only"); } else { System.out.println("String contains other values as well"); } } public static boolean CheckNumbers(String input) { for (int ctr = 0; ctr < input.length(); ctr++) { if ("1234567890".contains(Character.valueOf(input.charAt(ctr)).toString())) { continue; } else { return false; } } return true; } }

你可以使用Regex.Match

if(text.matches("\\d*")&& text.length() > 2){ System.out.println("number"); }

或者你可以像Integer.parseInt(String)或更好的Long.parseLong(String)使用更大的数字,例如:

private boolean onlyContainsNumbers(String text) { try { Long.parseLong(text); return true; } catch (NumberFormatException ex) { return false; } }

然后testing:

if (onlyContainsNumbers(text) && text.length() > 2) { // do Stuff }

这段代码已经写好了。 如果你不介意(非常)小的性能命中 – 这可能不比做正则expression式匹配更糟 – 使用Integer.parseInt()或Double.parseDouble() 。 如果一个string只是数字(或者是一个数字,那么会马上告诉你)。 如果您需要处理更长的string,则BigInteger和BigDecimal体育构造函数接受string。 如果你尝试传递一个非数字(当然是基于你select的整数或小数),任何这些都会抛出一个NumberFormatExceptionexception 。 或者,根据您的要求,只需迭代string中的字符并检查Character.isDigit()和/或Character.isLetter() 。

boolean isNum = text.chars()。allMatch(c – > c> = 48 && c <= 57)

下面的正则expression式可以用来检查一个string是否只有数字:

if (str.matches(".*[^0-9].*")) or if (str.matches(".*\\D.*"))

如果String包含非数字,则上述两个条件都将返回true 。 在false ,string只有数字。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值