我正在努力实现这一目标。 我有一串9char(总是一样的)。但我也知道,第一个和最后一个字母总是一个aplhabetic,它一定是。中间的其余部分是数字。如何检查。 到目前为止我得到了这个逻辑,语法是我的问题
string samplestring;
samplestring = a1234567B
If(samplestring.length() == 9 && samplestring.substring(0,1).uppercase && samplestring.substring(8,9) && samplestring.THE REST OF THE CHAR IN THE MIDDLE ARE DIGITS)
{
println("yes this is correct");
}
else
{
println("retype");
}
请不要介意简单的英语只是想知道语法,但逻辑是我希望..
还可以告诉我那些小写的如何转换为大写?
答案 0 :(得分:6)
正则表达式是合适的:
String s = new String("A2345678Z");
if (s.matches("[A-Z][0-9]{7}[A-Z]")))
{
}
正则表达式解释:
[A-Z]
表示任何大写字母[0-9]{7}
表示7位数字答案 1 :(得分:5)
Pattern p = Pattern.compile("^[A-Za-z]\\d+[A-Za-z]$");
Matcher m = p.match("A1234567B");
if (m.matches()) {
//
}
编辑:
如果总有七位数字,您可以将\\d+
替换为\\d{7}
答案 2 :(得分:-1)
String str="A12345678B";
char first = str.charAt(0);
char second = str.charAt(str.length()-1);
if(Character.isUpperCase(first)&& Character.isUpperCase(second)){
//do something
}