【问题标题】:java check the first and last char are uppercasejava检查第一个和最后一个字符是否大写
【发布时间】:2012-08-16 14:33:24
【问题描述】:

我正在努力实现这一目标。 我有一串 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");
}

请不要介意简单的英语只是想知道语法,但我希望逻辑在那里..

还可以告诉我那些小写的如何转换成大写吗?

【问题讨论】:

  • 首尾大写?除了标题之外,我没有看到任何地方提到这一点

标签: java string if-statement


【解决方案1】:

一个正则表达式是合适的:

String s = new String("A2345678Z");
if (s.matches("[A-Z][0-9]{7}[A-Z]")))
{
}

正则表达式解释:

  • [A-Z] 表示任何大写字母
  • [0-9]{7} 表示 7 位数字

【讨论】:

  • 你应该使用\p{javaUpperCase}而不是[A-Z],因为大写字母比A-Z多得多。
  • 嘿,如果发现字符串不是大写的,你能告诉我吗?将它们转换为大写..tks
  • @JackyBoi,如果 matches() 失败,则只需 s = s.toUpperCase() 并重试(或提前调用)。
  • @hmjd 嗨,我想所有回复的人都没有注意到,在我的示例中,我提到了 a1234567B,所以第一个和最后一个字符可以是大写或小写,那么有正则表达式吗?目前我正在使用 && 运算符来检查任何聪明的方法来解决我的问题?
  • @JackyBoi,将正则表达式更改为"[a-zA-Z][0-9]{7}[a-zA-Z]"
【解决方案2】:
Pattern p = Pattern.compile("^[A-Za-z]\\d+[A-Za-z]$");
Matcher m = p.match("A1234567B");
if (m.matches()) {
  //
}

编辑:

如果总是七位数,您可以将\\d+ 替换为\\d{7}

【讨论】:

  • 它还提到字符串是 9 个字符长,所以你知道中间会有 7 个数字。
  • 嘿,如果发现字符串不是大写的,你能告诉我吗?将它们转换为大写..tks
  • @JackyBoi 我不确定我是否正确理解了您的问题,但您可以使用:myString = myString.toUpperCase()。
  • @Forlan07 哦,就这么简单?好的,基本上参考我的问题,a1234567B,但我希望字母全部大写,所以你的建议仍然适用?
  • @JackyBoi 通过使用 toUpperCase() 你所有的字符(a-z)都将是大写的。
【解决方案3】:
String str="A12345678B";
char first = str.charAt(0);
char second = str.charAt(str.length()-1);
if(Character.isUpperCase(first)&& Character.isUpperCase(second)){
    //do something
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 2013-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多