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

Java通过换行将字符串拆分为数组

Java通过换行将字符串拆分为数组,java,arrays,string,Java,Arrays,String,编辑:为了简单起见,我修改了这个问题 我有一种方法可以将一个长字符串拆分为一个字符串数组,它将返回一个双字符串,以便我以后可以将其写入.csv文件: public class Test { public static void main(String[] args) throws IOException { String test = "Michael Porter Jr. 2018-19 Panini Prizm Silver Prizm PSA 10 Gem Mint

编辑:为了简单起见,我修改了这个问题

我有一种方法可以将一个长字符串拆分为一个字符串数组,它将返回一个双字符串,以便我以后可以将其写入.csv文件:

public class Test {
    public static void main(String[] args) throws IOException {
        String test = "Michael Porter Jr. 2018-19 Panini Prizm Silver Prizm PSA 10 Gem Mint! Hot! ?? \n 2018 Prizm Silver MICHAEL PORTER JR. RC PSA 10 Gem Mint";
        System.out.println(test);
        String[] test_split = test.split("\\r?\\n");
        for (String t : test_split) {
            System.out.println(test_split.toString());
        }

    }

}
我的代码返回以下内容:

Michael Porter Jr. 2018-19 Panini Prizm Silver Prizm PSA 10 Gem Mint! Hot! ?? 
 2018 Prizm Silver MICHAEL PORTER JR. RC PSA 10 Gem Mint
[Ljava.lang.String;@4a574795
[Ljava.lang.String;@4a574795

实际上,我希望有一个包含两个名称的数组(由换行符分隔),但我得到了一些奇怪的东西。我可以如何修复此问题?

如果您反转阵列,可能会更好。让它们成为
2xN
而不是
Nx2
,下面是您的方法的一部分

         String[][] nameAndPrice = new String[2][listingName_extract.length];

         for (int i = 0; i < listingName_extract.length; i++) {
              nameAndPrice[0][i] = String.valueOf(listingName_extract[i]);
              nameAndPrice[1][i] = String.valueOf(listingPrice_extract[i]);
          }
         return nameAndPrice;
然后如果你想把它们并排打印出来

 for (int i = 0; i < listingName_extract.length; i++) {
     System.out.println(nameAndPrice[0][i] + " " + nameAndPrice[1][i]);
 }
for(int i=0;i
从您发布的输出判断,您似乎在打印字符串数组而不是字符串,而没有真正看到您实际以何种方式调用,例如println。 如果确实如此,您也可以使用:

Arrays.toString(yourArray);

正如用户ThingaboveMe和Andreas所建议的,我应该关注t(字符串),而不是测试分割(数组本身)


我还根据用户WJS的建议编辑了我的代码

无关:使用
“\\r?\\n”
,而不是
”\\r“
,我想你是想在循环内打印
t
,而不是
test\u split
。哦,就是这样!非常感谢你!是的,我实际上是在找t。另请参见:BTW
split(\\r?\\n)
\n
设为必填项,因此它将无法拆分
Foo\rBar
。如果您不知道文本中出现哪行分隔符,请考虑使用<代码>拆分(“\r”)< /代码>来表示所有(或几乎所有的,我不能确定将来会带来什么)行分隔符(更多信息)。
Arrays.toString(yourArray);