Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.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_Arrays_String_Arraylist_Filereader - Fatal编程技术网

Java如何解析它?

Java如何解析它?,java,arrays,string,arraylist,filereader,Java,Arrays,String,Arraylist,Filereader,我有一个文件,内容如下: J1 0 90 "7,27,73,86" J2 1 39 "12" J3 2 195 "11,31,73,94,120,134,183" 我将第四列数字存储为字符串 Scanner input = new Scanner( new File( "projectData.txt" ) ); while ( input.hasNext() ) { job = input.next();//

我有一个文件,内容如下:

J1  0   90  "7,27,73,86"
J2  1   39  "12"
J3  2   195 "11,31,73,94,120,134,183"
我将第四列数字存储为字符串

 Scanner input = new Scanner( new File( "projectData.txt" ) );

      while ( input.hasNext() )
      {
        job =  input.next();//
        arrival = input.nextInt();//
        cpu = input.nextInt();
        fault = input.next();   

        jobs[i] = new MyJobs( job, arrival, cpu, fault );//stores four local variables in array
        i++;//increments I
如何解析字符串以将其存储为整数,以便稍后与cpu值进行比较?

在Java 8中:

String s = "11,31,73,94,120,134,183";
Object [] res =
                Stream.of(s.split(","))
                    .map(Integer::valueOf)
                    .collect(Collectors.toList())                                
                    .toArray();
System.out.println(Arrays.toString(res)); // [11, 31, 73, 94, 120, 134, 183]
这可能会以更优雅的方式实现。我还在玩Java8…:)

请注意,结果是一个对象数组,而不是整数数组,但是使用强制转换很容易将每个对象“转换”为整数

同样的结果也可以通过使用逗号拆分和使用以下命令将每个子字符串转换为整数的旧方法实现:

String s=“11,31,73,94120134183”;
字符串[]sArray=s.split(“,”);
整数[]res=新整数[sArray.length];
for(int i=0;i
在Java 8中:

String s = "11,31,73,94,120,134,183";
Object [] res =
                Stream.of(s.split(","))
                    .map(Integer::valueOf)
                    .collect(Collectors.toList())                                
                    .toArray();
System.out.println(Arrays.toString(res)); // [11, 31, 73, 94, 120, 134, 183]
这可能会以更优雅的方式实现。我还在玩Java8…:)

请注意,结果是一个对象数组,而不是整数数组,但是使用强制转换很容易将每个对象“转换”为整数

同样的结果也可以通过使用逗号拆分和使用以下命令将每个子字符串转换为整数的旧方法实现:

String s=“11,31,73,94120134183”;
字符串[]sArray=s.split(“,”);
整数[]res=新整数[sArray.length];
for(int i=0;i
在Java 8中:

String s = "11,31,73,94,120,134,183";
Object [] res =
                Stream.of(s.split(","))
                    .map(Integer::valueOf)
                    .collect(Collectors.toList())                                
                    .toArray();
System.out.println(Arrays.toString(res)); // [11, 31, 73, 94, 120, 134, 183]
这可能会以更优雅的方式实现。我还在玩Java8…:)

请注意,结果是一个对象数组,而不是整数数组,但是使用强制转换很容易将每个对象“转换”为整数

同样的结果也可以通过使用逗号拆分和使用以下命令将每个子字符串转换为整数的旧方法实现:

String s=“11,31,73,94120134183”;
字符串[]sArray=s.split(“,”);
整数[]res=新整数[sArray.length];
for(int i=0;i
在Java 8中:

String s = "11,31,73,94,120,134,183";
Object [] res =
                Stream.of(s.split(","))
                    .map(Integer::valueOf)
                    .collect(Collectors.toList())                                
                    .toArray();
System.out.println(Arrays.toString(res)); // [11, 31, 73, 94, 120, 134, 183]
这可能会以更优雅的方式实现。我还在玩Java8…:)

请注意,结果是一个对象数组,而不是整数数组,但是使用强制转换很容易将每个对象“转换”为整数

同样的结果也可以通过使用逗号拆分和使用以下命令将每个子字符串转换为整数的旧方法实现:

String s=“11,31,73,94120134183”;
字符串[]sArray=s.split(“,”);
整数[]res=新整数[sArray.length];
for(int i=0;i
基本方法是使用
String.substring()
删除双引号,然后使用逗号将
String.split()
拆分为
String[]
。从这里您知道
int[]
需要多大,因此只需迭代
字符串[]
并将每个元素转换为
int

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    int[] faultNumbers = new int[pieces.length];
    for (int i = 0; i < faultNumbers.length; i++) {
        faultNumbers[i] = Integer.parseInt(pieces[i]);
    }

    System.out.println(Arrays.toString(faultNumbers));
}
Java8流 要使用流构建@alfasin answer,可以缩短基本方法

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    // This does the job of the for loop in the basic approach
    int[] faultNumbers = Arrays.stream(pieces)
            .mapToInt(Integer::parseInt)
            .toArray();

    System.out.println(Arrays.toString(faultNumbers));
}

基本方法是使用
String.substring()
删除双引号,然后使用逗号将
String.split()
拆分为
String[]
。从这里您知道
int[]
需要多大,因此只需迭代
字符串[]
并将每个元素转换为
int

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    int[] faultNumbers = new int[pieces.length];
    for (int i = 0; i < faultNumbers.length; i++) {
        faultNumbers[i] = Integer.parseInt(pieces[i]);
    }

    System.out.println(Arrays.toString(faultNumbers));
}
Java8流 要使用流构建@alfasin answer,可以缩短基本方法

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    // This does the job of the for loop in the basic approach
    int[] faultNumbers = Arrays.stream(pieces)
            .mapToInt(Integer::parseInt)
            .toArray();

    System.out.println(Arrays.toString(faultNumbers));
}

基本方法是使用
String.substring()
删除双引号,然后使用逗号将
String.split()
拆分为
String[]
。从这里您知道
int[]
需要多大,因此只需迭代
字符串[]
并将每个元素转换为
int

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    int[] faultNumbers = new int[pieces.length];
    for (int i = 0; i < faultNumbers.length; i++) {
        faultNumbers[i] = Integer.parseInt(pieces[i]);
    }

    System.out.println(Arrays.toString(faultNumbers));
}
Java8流 要使用流构建@alfasin answer,可以缩短基本方法

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    // This does the job of the for loop in the basic approach
    int[] faultNumbers = Arrays.stream(pieces)
            .mapToInt(Integer::parseInt)
            .toArray();

    System.out.println(Arrays.toString(faultNumbers));
}

基本方法是使用
String.substring()
删除双引号,然后使用逗号将
String.split()
拆分为
String[]
。从这里您知道
int[]
需要多大,因此只需迭代
字符串[]
并将每个元素转换为
int

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    int[] faultNumbers = new int[pieces.length];
    for (int i = 0; i < faultNumbers.length; i++) {
        faultNumbers[i] = Integer.parseInt(pieces[i]);
    }

    System.out.println(Arrays.toString(faultNumbers));
}
Java8流 要使用流构建@alfasin answer,可以缩短基本方法

public static void main(String[] args) throws Exception {
    String fault = "\"11,31,73,94,120,134,183\"";
    String[] pieces = fault.substring(1, fault.length() - 1).split(",");

    // This does the job of the for loop in the basic approach
    int[] faultNumbers = Arrays.stream(pieces)
            .mapToInt(Integer::parseInt)
            .toArray();

    System.out.println(Arrays.toString(faultNumbers));
}

您使用的是哪个版本的Java?请尝试按fault.split(“,”)拆分字符串,然后使用Integer.parseInteger(fault[1]);要将字符串解析为字符串。您使用的是哪个版本的Java?请尝试按fault.split(“,”)拆分字符串,然后使用Integer.parseInteger(fault[1]);要将字符串解析为字符串。您使用的是哪个版本的Java?请尝试按fault.split(“,”)拆分字符串,然后使用Integer.parseInteger(fault[1]);要将字符串解析为字符串。您使用的是哪个版本的Java?请尝试按fault.split(“,”)拆分字符串,然后使用Integer.parseInteger(fault[1]);解析为字符串。