我想在 Text 中找到开头是数字,后跟 .
example:
1.
11.
111.
我的 x 代码。(x 是数字)这是有效的。问题是当 x 超过 2 位时。
x= Character.isDigit(line.charAt(0));
if(x)
if (line.charAt(1)=='.')
如何扩展此逻辑以查看 x 是否为整数,后跟 .
我的第一个问题是:我需要喜欢给定的行有 x。格式与否,其中 x 是一个整数
我想在 Text 中找到开头是数字,后跟 .
example:
1.
11.
111.
我的 x 代码。(x 是数字)这是有效的。问题是当 x 超过 2 位时。
x= Character.isDigit(line.charAt(0));
if(x)
if (line.charAt(1)=='.')
如何扩展此逻辑以查看 x 是否为整数,后跟 .
我的第一个问题是:我需要喜欢给定的行有 x。格式与否,其中 x 是一个整数
您可以使用正则表达式[0-9]\.
来查看字符串中是否存在数字后跟句点。
如果您需要确保模式始终位于字符串的开头,您可以使用^[0-9]+\.
public class ParsingData {
public static void main(String[] args) {
//String one = "1.";
String one = "11.";
int index = one.indexOf(".");
String num = (String) one.subSequence(0, index);
if(isInteger(num)) {
int number = Integer.parseInt(num);
System.out.println(number);
}
else
System.out.println("Not an int");
}
public static boolean isInteger(String string) {
try {
Integer.valueOf(string);
return true;
} catch (NumberFormatException e) {
return false;
}
}
}
编辑:哎呀,误读了。
尝试这个:
public static boolean prefix(String s) {
return s.matches("[0-9]+\\.");
}
您可以使用正则表达式:
Pattern.compile("C=(\\d+\\.\\d+)")
但是,更一般的情况是:
Pattern.compile("[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?")
现在要使用 Pattern,您可以执行以下操作:
Pattern pattern = Pattern.compile("[-+]?[0-9]*\\.?[0-9]+([eE][-+]?[0-9]+)?");
Matcher matcher = pattern.matcher(EXAMPLE_TEST);
// Check all occurances
while (matcher.find()) {
System.out.print("Start index: " + matcher.start());
System.out.print(" End index: " + matcher.end() + " ");
System.out.println(matcher.group());
}
为什么不使用正则表达式?
([0-9]+)[.]