【发布时间】:2019-07-18 12:02:26
【问题描述】:
我确实有一个问题。我必须确定输入字符串是否确实是有效的四字符双文字
- 完全由以下字符组成:“+”、“-”、“.”(小数点)和“0”到“9”
- “+”或“-”字符只能作为第一个字符出现
- “.”(小数点)字符必须只出现一次
- 所有其他字符必须是“0”到“9”字符
我的大问题是将 +- 放在第一个字符和 .一次
【问题讨论】:
标签: java if-statement char
我确实有一个问题。我必须确定输入字符串是否确实是有效的四字符双文字
- 完全由以下字符组成:“+”、“-”、“.”(小数点)和“0”到“9”
- “+”或“-”字符只能作为第一个字符出现
- “.”(小数点)字符必须只出现一次
- 所有其他字符必须是“0”到“9”字符
我的大问题是将 +- 放在第一个字符和 .一次
【问题讨论】:
标签: java if-statement char
试试这个 -
static boolean isValid(String s) {
// 1
if (s.length() != 4) return false;
String digits = "0123456789";
// 2
if (s.charAt(0) != '+' && s.charAt(0) != '-' && digits.indexOf(s.charAt(0)) == -1) return false;
byte decimalCount = 0;
for (int i = 1; i < 4; i++) {
if (s.charAt(i) == '.') decimalCount++;
// 4
else if (digits.indexOf(s.charAt(i)) == -1) return false;
}
//3
return decimalCount == 1;
}
【讨论】: