所以我试图弄清楚如何为我的决策结构创建一个条件。我正在制作一个将军事时间转换为常规时间的程序。输入时间时,它们必须采用XX:XX格式,其中X等于数字。我想知道,如何进行检查以确保":"总是作为冒号存在并且在同一个地方?
答案 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。
以下是完成您想要做的事情的完整示例: