查找特定索引中是否存在特定字符

时间:2014-04-14 18:18:15

标签: java

所以我试图弄清楚如何为我的决策结构创建一个条件。我正在制作一个将军事时间转换为常规时间的程序。输入时间时,它们必须采用XX:XX格式,其中X等于数字。我想知道,如何进行检查以确保":"总是作为冒号存在并且在同一个地方?

5 个答案:

答案 0 :(得分:0)

myString.charAt(5) == ':'

只需将5更改为您需要的任何内容,并在执行此操作之前检查字符串长度,这样您就不会要求在短字符串结尾处输入内容。

答案 1 :(得分:0)

您可以使用indexOf()搜索字符串,该字符串将返回找到该字符的索引。这将检查字符串中是否有冒号以及它是否在正确的位置。

if("10:00".indexOf(':') == 2)
  // do something

如果找不到值,它将返回-1。查看the java documentation了解详情。

答案 2 :(得分:0)

以下是答案

假设您的字符串包含XX:XX

yourString="XX:XX"
yourString.contains(":") - return true  - if exists

“:”获得第3名。所以它将是2(0,1,2)

yourString.charAt(2) == ':'

一起,它将是

if(yourString.contains(":") && yourString.charAt(2) == ':'){
//your logic here
}else{
这里的东西 }

答案 3 :(得分:0)

这是一种方法,

String[] test = new String[] { "00:00", "NN:NN", "12,13", "12:13" };
for (String fmt : test) {
    boolean isValid = true;
    for (int i = 0; i < fmt.length(); i++) {
        char c = fmt.charAt(i);
        if (i == 2) {
            if (c != ':') { // here is the colon check.
                isValid = false;
                break;
            }
        } else {
            // This checks for digits!
            if (!Character.isDigit(c)) {
                isValid = false;
                break;
            }
        }
    }
    System.out.println(fmt + " is " + isValid);
}

输出

00:00 is true
NN:NN is false
12,13 is false
12:13 is true

答案 4 :(得分:0)

@WillBro发布了一个很好的答案,但我给你另一个选择:

myString.indexOf(":") == 5

使用indexOf,您还可以在String中查找完整的String。

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html

但是对于字符串格式验证,我建议你使用Regular Expresions。

以下是完成您想要做的事情的完整示例:

http://www.mkyong.com/regular-expressions/how-to-validate-time-in-24-hours-format-with-regular-expression/