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

Java 我好像不能用。对了,我做错了什么

Java 我好像不能用。对了,我做错了什么,java,Java,我正在尝试拆分一个读入文件并将其放入2d数组中。该文件的每个字符串上有3个字符串 用逗号分隔的行,整体想法是用排序算法来安排,但我不能分割字符串,这让我发疯,有人能帮我吗 /** * * * @author (your name) * @version (a version number or a date) */ import java.util.*; import java.lang.String; import java.util.ArrayList; import jav

我正在尝试拆分一个读入文件并将其放入2d数组中。该文件的每个字符串上有3个字符串 用逗号分隔的行,整体想法是用排序算法来安排,但我不能分割字符串,这让我发疯,有人能帮我吗

/**
 * 
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
import java.util.*;
import java.lang.String;
import java.util.ArrayList;
import java.util.Arrays;
public class Example2{
    public static void main(String args[]){

        FileIO reader = new FileIO();
        Scanner scan = new Scanner(System.in);

        String[] inputs = reader.load("C:/ratings.csv");
        String[] sep = new String[inputs.length];

        for(int i=0;i<inputs.length;i++){
           sep[i]=inputs.split(",");
           System.out.println(sep[i]);
        }

        try{
            reader.save("C://somefile.csv",inputs);
        }catch (Exception e){
            System.out.println(e.getClass());
        }
    }
}
/**
* 
* 
*@author(你的名字)
*@version(版本号或日期)
*/
导入java.util.*;
导入java.lang.String;
导入java.util.ArrayList;
导入java.util.array;
公共课示例2{
公共静态void main(字符串参数[]){
FileIO读取器=新FileIO();
扫描仪扫描=新扫描仪(System.in);
字符串[]输入=reader.load(“C:/ratings.csv”);
String[]sep=新字符串[inputs.length];
for(int i=0;i是
String
类中的一个方法,
inputs
是一个字符串数组。这里需要一个数组访问。您可能只是忘记添加
[i]
在代码中。另外,由于您在循环中拆分字符串,因此您正在创建一个2D字符串数组,这意味着
sep
应该是
string[][]
。请尝试一下

public class Example2{
    public static void main(String args[]){

        FileIO reader = new FileIO();
        Scanner scan = new Scanner(System.in);

        String[] inputs = reader.load("C:/ratings.csv");
        String[][] sep = new String[inputs.length][];

        for(int i=0;i<inputs.length;i++){
             sep[i]=inputs[i].split(",");
             System.out.println(Arrays.toString(sep[i]));
           }
        }

        // ... 
    }
}
公共类示例2{
公共静态void main(字符串参数[]){
FileIO读取器=新FileIO();
扫描仪扫描=新扫描仪(System.in);
字符串[]输入=reader.load(“C:/ratings.csv”);
字符串[][]sep=新字符串[inputs.length][];

对于(int i=0;i我不知道您返回的是什么,但是.split会将sep拆分为一个列表

这个代码是正确的

sep[i]=inputs.split(",");
但这是你的问题

String[] sep = new String[inputs.length];
这是一维数组,但需要二维数组

答复:

String[][] sep = new String[inputs.length][];

这只是为了解决.split问题。

您试图将
字符串[]
放在需要
字符串的位置。(
sep
的组件类型为
String
String#split
的返回类型为
String[]
输入。split(“,”
与您提到的不同,是不正确的。