我需要从如下所示的字符串中提取几个整数:
22:43:12:45
我需要提取 22、43、12 和 45 作为单独的整数。我需要使用字符串方法或扫描仪方法来读取直到:并提取 22。然后在第一个:和第二个:之间读取给我 43,依此类推。
我可以提取到第一个:没问题,但我知道之后该怎么做。
任何帮助将非常感激。
我需要从如下所示的字符串中提取几个整数:
22:43:12:45
我需要提取 22、43、12 和 45 作为单独的整数。我需要使用字符串方法或扫描仪方法来读取直到:并提取 22。然后在第一个:和第二个:之间读取给我 43,依此类推。
我可以提取到第一个:没问题,但我知道之后该怎么做。
任何帮助将非常感激。
String[] parts = str.split(":");
int[] numbers = new int[parts.length];
遍历此 String 数组以获取整数数组:
int index = 0;
for(String part : parts)
numbers[index++] = Integer.parseInt(part);
您只能使用indexOf
和substring
方法String
:
String text = "22:43:12:45";
int start = 0;
int colon;
while (start < text.length()) {
colon = text.indexOf(':', start);
if (colon < 0) {
colon = text.length();
}
// You can store the returned value somewhere, in a list for example
Integer.parseInt(text.substring(start, colon)));
start = colon + 1;
};
使用 Scanner 更简单:
String text = "22:43:12:45";
Scanner scanner = new Scanner(text);
scanner.useDelimiter(":");
while (scanner.hasNext()) {
// Store the returned value somewhere to use it
scanner.nextInt();
}
做一个像这样的正则表达式
(\d\d):(\d\d):(\d\d):(\d\d)
你应该看看 String.split 方法。给定一个正则表达式,此方法会根据它拆分字符串。在您的情况下,正则表达式是“:”
String s ="22:43:12:45";
int i =0;
for (String s1 : s.split(":")) { // For each string in the resulting split array
i = Integer.parseInt(s1);
System.out.println(i);
}
拆分返回一个字符串数组,其中您的字符串是分开的。因此,在这种情况下,生成的字符串数组将在第 0 个位置具有“22”,在第一个位置具有“43”,依此类推。要将这些转换为整数,您可以使用 parseInt 方法,该方法接受一个字符串并给出等效的 int。