Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
获取字符串Java中空格后的值_Java_String_Extract - Fatal编程技术网

获取字符串Java中空格后的值

获取字符串Java中空格后的值,java,string,extract,Java,String,Extract,我有一串值 像 String line= "cpu 74608 2520 24433 1117073 6176 4054"; 我只想提取这些值并将它们存储在不同的变量中 有什么方法可以得到每个空格后的数值吗 您可以选择的方法之一是使用方法。它接受正则表达式,因此您可以跳过任意数量的空格: String[] values = line.split("\\s*"); 然后必须将这些字符串转换为所需的值: int firstNum = Integer.valueOf(valu

我有一串值

String line= "cpu  74608   2520   24433   1117073   6176   4054";
我只想提取这些值并将它们存储在不同的变量中


有什么方法可以得到每个空格后的数值吗

您可以选择的方法之一是使用方法。它接受正则表达式,因此您可以跳过任意数量的空格:

String[] values = line.split("\\s*");
然后必须将这些
字符串
转换为所需的值:

int firstNum = Integer.valueOf(values[1]);
// anything like this
如果您可以将其存储为数组/列表,但不能存储为不同的变量,那么您可能希望以这种方式提取所有数字(Java 8):

也许,更简单的方法是使用:


您可以选择的一个方法是使用方法。它接受正则表达式,因此您可以跳过任意数量的空格:

String[] values = line.split("\\s*");
然后必须将这些
字符串
转换为所需的值:

int firstNum = Integer.valueOf(values[1]);
// anything like this
如果您可以将其存储为数组/列表,但不能存储为不同的变量,那么您可能希望以这种方式提取所有数字(Java 8):

也许,更简单的方法是使用:

输出:

123
456
123
578
输出:

123
456
123
578

您可以首先将数据拆分为一个数组:

String [] lineSplit = line.split("\\s+");
然后开始将数据解析为单个变量:

int foo = 0;
for(int i = 0; i < lineSplit.length; i++) {
    if(lineSplit[i].matches("\\d+") {
        foo = Integer.parseInt(lineSplit[i]);
    }else {
        //Do something else...
    }
}
intfoo=0;
对于(int i=0;i

对不同的数据类型重复上述操作,并添加变量等,以获得所需的结果。

您可以从将数据拆分为数组开始:

String [] lineSplit = line.split("\\s+");
然后开始将数据解析为单个变量:

int foo = 0;
for(int i = 0; i < lineSplit.length; i++) {
    if(lineSplit[i].matches("\\d+") {
        foo = Integer.parseInt(lineSplit[i]);
    }else {
        //Do something else...
    }
}
intfoo=0;
对于(int i=0;i
对不同的数据类型重复上述操作,并添加变量等,以获得所需的结果。

可以。 使用
String.split()
Integer.parseInt()
如下所示:

    String[] split = line.split("\\s+");
    List<Integer> numbers = new ArrayList<Integer>();
    for (String num: split) {
        try {
            numbers.add(Integer.parseInt(num));
        } catch (NumberFormatException ex) {
            // not a number
        }
    }
String[]split=line.split(\\s+);
列表编号=新的ArrayList();
用于(字符串编号:拆分){
试一试{
add(Integer.parseInt(num));
}捕获(NumberFormatException ex){
//不是数字
}
}
是的,你可以。 使用
String.split()
Integer.parseInt()
如下所示:

    String[] split = line.split("\\s+");
    List<Integer> numbers = new ArrayList<Integer>();
    for (String num: split) {
        try {
            numbers.add(Integer.parseInt(num));
        } catch (NumberFormatException ex) {
            // not a number
        }
    }
String[]split=line.split(\\s+);
列表编号=新的ArrayList();
用于(字符串编号:拆分){
试一试{
add(Integer.parseInt(num));
}捕获(NumberFormatException ex){
//不是数字
}
}

split方法可以帮助您实现这一点。只需添加一个regex作为分隔符,将得到一个数组,其中填充了您要查找的值。注意,使用@Stultuske的代码,您将得到一个字符串数组。必要时,您必须将数据转换/解析为适当的类型。split方法可以请看这里。只需添加一个正则表达式作为分隔符,用于无限个空格,您将得到一个数组,数组中填充了您要查找的值。请注意,使用@Stultuske的代码,您将得到一个字符串数组。必要时,您必须将数据转换/解析为适当的类型。关于措辞的旁注:任何人都不必使用split()为了解决这个问题。还有其他选项;因此不需要人为地将选项空间减少为“拆分”。感谢您让它运行起来@Dmitry@Jägermeister好的,我会修正措辞。措辞的旁注:没有人必须使用split()来解决这个问题。还有其他选项;因此没有必要人为地将选项空间减少到“分开”谢谢你让它运行起来了@Dmitry@J好的,我来修改措辞。