Check if a String does not only contain integers
我试图在String上执行一个代码块,如果它不包含整数。 例如,如果输入是2017年,则不会发生任何事情; 否则,如果它是2017abc,则将执行代码块。
我已经尝试了正则表达式
我在这里错过了什么吗?
更新:
使用
无论如何,感谢有人提前提出这个答案。:)
您在更新中声明的解决方法看起来不错。但是,我会尝试解决您的初始代码无效的原因。
我测试了你的问题陈述中给出的正则表达式:
^[0-9]+$
它似乎对我很好。基于我的快速研究,问题可能出在您在问题中稍后提到的java代码中。不需要开头和结尾的斜杠。
替换它
1 | if (!keyword.matches("/^[0-9]+$/") |
有了这个
1 | if (!keyword.matches("^[0-9]+$") |
你很高兴。很高兴知道我是否遗漏了什么。
有关正则表达式和模式的广泛知识,我建议使用以下链接。
http://www.vogella.com/tutorials/JavaRegularExpressions/article.html#regular-expressions
祝好运。
它不漂亮,但为什么不让Java做这个工作:
1 2 3 4 5 6 7 8 9 | private boolean isInteger(String o){ try{ Integer.valueOf(o); return true; }catch(NumberFormatException ex){ return false; } } |
试试这个
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import java.util.Scanner; public class NotOnlyIntegers { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Please enter the String"); String test=scan.nextLine(); int digit=0; int letter=0; for(int x=0;x<test.length()-1;++x) { if(Character.isDigit(test.charAt(x))) { ++digit; } else if(Character.isLetter(test.charAt(x))) { ++letter; } } if(digit>0&&letter>0) { System.out.println("Code Executed"); } else System.out.println("Code Not Executed"); } } |
正确的正则表达式可能是