根据Javadoc(根据我的理解),matches()即使它找到了它正在寻找的东西,它也会搜索整个字符串,并find()在它找到它所寻找的内容时停止.
如果这个假设是正确matches()的find(),除非你想要计算它找到的匹配数,否则我无法看到你想要使用的代替.
在我看来,String类应该具有find()而不是matches()作为内置方法.
总结一下:
matches()而不是find()?我有一个字符串,我在我的应用程序中加载,它从数字变为字母等.我有一个简单的if声明,看它是否包含字母或数字,但有些东西不能正常工作.这是一个片段.
String text = "abc";
String number;
if (text.contains("[a-zA-Z]+") == false && text.length() > 2) {
number = text;
}
Run Code Online (Sandbox Code Playgroud)
虽然text变量确实包含字母,但条件返回为true.的和&&应作为EVAL两个条件不必是true为了处理number = text;
==============================
解:
我能够通过使用此问题的评论提供的以下代码来解决这个问题.所有其他帖子也有效!
我使用的工作来自第一条评论.虽然提供的所有示例代码似乎也是有效的!
String text = "abc";
String number;
if (Pattern.matches("[a-zA-Z]+", text) == false && text.length() > 2) {
number = text;
}
Run Code Online (Sandbox Code Playgroud) 我在我的Web应用程序中使用带有Spring JDBC模板的MySQL.我需要存储只有数字(10)的电话号码.我对使用数据类型的数据类型有点困惑.
嗨,在我的 android 应用程序中,我有一个 edittext,其中 inputtype 是人名,但是对于允许使用特殊字符,我需要的是一个 edittext,我只需要输入数字和字母。但是我需要验证所有数字,如果所有数字都输入意味着需要显示错误消息。
我喜欢这个
android:digits="0123456789qwertzuiopasdfghjklyxcvbnmQWERTZUIOPASDFGHJKLYXCVBNM"
android:inputType="textFilter"
Run Code Online (Sandbox Code Playgroud)
有了这个,我们也可以输入所有数字......但是如果用户输入所有数字,我需要显示一条错误消息。
java ×3
android ×1
digit ×1
if-statement ×1
mysql ×1
phone-number ×1
regex ×1
string ×1
validation ×1