2 sinat 25136209 sinat_25136209 于 2017.01.04 00:25 提问

java中怎么设置字符串的输入限制

ava中怎么设置语句让长度为11的字符串中,除了前面两个长度,后面9个长度为0~9的数字。前面两个长度的限制条件我已经设置了条件,现在要设置后面9个长度的限制条件。。
求解~~

4个回答

Dave_NewStar
Dave_NewStar   2017.01.04 00:52
已采纳

利用正则表达式;
1利用String.subString();截取到后九位;
2利用正则表达式"[0-9]{9}"进行判断。兄弟代码实现看你自己了,下面是代码,只能帮你到这了
public class Demo1 {
public static void main(String[] args) {
String str = "qw123456789";
String regex = "[0-9]{9}";
String substring = str.substring(2, str.length());
System.out.println(substring.matches(regex));
}

}

engchina
engchina   Rxr 2017.01.04 11:55

》后面9个长度为0~9的数字
跟你写的代码不一致,aa.substring(2,10)只取后面8位。

如果是固定9位,
代码应该改为aa.substring(2,11),
正则表达式 String regex = "[0-9]{9}"; 是正解。(1楼答案)。

如果是动态的0-9位,
代码应该改为aa.substring(2,aa.length()),
正则表达式 String regex = "[0-9]{0,9}"; (0回以上,9回以下)

sinat_25136209
sinat_25136209   2017.01.04 00:49

图片说明
我还试过aa.substring(2,10).matches("[0-9]") aa.substring(2,10).matches("[0~9]") aa.substring(2,10).matches("\d")
都输出的是false。。。语句写的不对么?

baidu_36779925
baidu_36779925 回复sinat_bear: 你匹配的0-9的任意一个,而不是匹配了九个。需要加{9}。
12 个月之前 回复
yearHeaven
yearHeaven   2017.01.04 09:51

和楼上差不多,后端截取判断,前端正则

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!