Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用scanner或string方法在字符串中进行多个搜索(java)_Java_String_Extract_Java.util.scanner - Fatal编程技术网

使用scanner或string方法在字符串中进行多个搜索(java)

使用scanner或string方法在字符串中进行多个搜索(java),java,string,extract,java.util.scanner,Java,String,Extract,Java.util.scanner,我需要从一个字符串中提取几个整数,如下所示: 22:43:12:45 我需要提取22、43、12和45作为单独的整数。我需要使用string方法或scanner方法读取直到:并提取22。然后读之间的第一条:和第二条:给我43,依此类推 我可以提取到第一个:没问题,但我知道以后要做什么 任何帮助都将不胜感激。做一个类似的例子 迭代此字符串数组以获取整数数组: int index = 0; for(String part : parts) numbers[index++] = Integer

我需要从一个字符串中提取几个整数,如下所示:

22:43:12:45

我需要提取22、43、12和45作为单独的整数。我需要使用string方法或scanner方法读取直到:并提取22。然后读之间的第一条:和第二条:给我43,依此类推

我可以提取到第一个:没问题,但我知道以后要做什么

任何帮助都将不胜感激。

做一个类似的例子

迭代此字符串数组以获取整数数组:

int index = 0;
for(String part : parts)
    numbers[index++] = Integer.parseInt(part);

您应该看看String.split方法。给定一个正则表达式,此方法将基于该正则表达式拆分字符串。在您的情况下,正则表达式是“:”

拆分返回一个字符串数组,字符串被分隔开。因此,在本例中,生成的字符串数组在第0个位置上有“22”,在第一个位置上有“43”,依此类推。要将这些值转换为整数,可以使用parseInt方法,该方法接受字符串并给出与int等价的值

您只能使用和方法:


但是,.

+1如果分隔符(冒号)相同,这是最简单的方法。有没有更简单(即使效率较低)的方法?这是第一学期的计算机科学课程,我们没有涵盖像[]、new或split之类的内容。。。只有next()或indexOf()@Wimp这样的基本类才能使用Scanner类。并在扫描中使用“:”作为分隔符。搜索扫描仪分隔符示例。您尝试了什么吗?还是搜索?
String[] parts = str.split(":");
int[] numbers = new int[parts.length];
int index = 0;
for(String part : parts)
    numbers[index++] = Integer.parseInt(part);
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);
}
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;
};
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();
}