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 - Fatal编程技术网

Java 将字符串转换为多个字符串

Java 将字符串转换为多个字符串,java,string,Java,String,坚持这个小项目。无法理解如何在字符串[]内将字符串拆分为多个字符串 例如: String exampleString = "one two three four five"; String[] exmplString = {"one", "two", "three", "four", "five"}; 我所拥有的: static File interfacepath; FileReader fr; BufferedReader br; static String currentLine; st

坚持这个小项目。无法理解如何在字符串[]内将字符串拆分为多个字符串

例如:

String exampleString = "one two three four five";
String[] exmplString = {"one", "two", "three", "four", "five"};
我所拥有的:

static File interfacepath;
FileReader fr;
BufferedReader br;
static String currentLine;
static String[] parseableLine;
Integer lineNumber;

public void readFile(Integer interfaceID) throws IOException {

    interfacepath = new File("data/csgui/interface_" + interfaceID
            + ".csgui");

    fr = new FileReader(interfacepath.getAbsolutePath());

    br = new BufferedReader(fr);

    br.read();

    getLine(1);
}

public static void getLine(Integer lineNumber) throws IOException {

    try (LineNumberReader lnr = new LineNumberReader(new FileReader(
            interfacepath))) {

        for (String line = null; (line = lnr.readLine()) != null;) {

            if (lnr.getLineNumber() == lineNumber) {

                currentLine = line;
                parseableLine = currentLine.split("\\s+");

                System.out.println(parseableLine);

        }
            System.out.println(currentLine);

    }

}
}
当我运行应用程序时,它返回:

[Ljava.lang.String;@5bcf4b61
 testTable Table 1280 720 350 350 1
&我遇到的困难是:

{testTable, Table, 1280, 720, 350, 350, 1}
testTable Table 1280 720 350 350 1
这正是您要查找的内容,假设要拆分的每个字符串之间始终至少有一个空格

public static String[] splitBySpace(String s){
    return s.split("\\s+");
}

如果我理解你的问题,你可以用

public static void main(String[] args) {
    String str = "testTable Table 1280 720 350 350 1";
    String[] strArr = str.split("\\s+");
    System.out.println(Arrays.toString(strArr));
}
输出为

[testTable, Table, 1280, 720, 350, 350, 1]
因为
“\\s+”
匹配一个或多个空白字符

编辑

根据您更新的代码

System.out.println(parseableLine);
应该是

System.out.println(Arrays.toString(parseableLine));

您将获得
[Ljava.lang.String;@5bcf4b6
(和需要),因为Java数组不会覆盖
toString()

,您需要更改

return new String[] { sb.toString()};

sb.toString()
返回
testTable表1280 720 350 350 1
将按空格返回并作为数组返回。

每个人都使用过,所以我使用过

String exampleString=“testTable 1280 720 350 1”;
StringTokenizer StringTokenizer=新的StringTokenizer(例如String,“”);
列表=新的ArrayList();
while(stringTokenizer.hasMoreTokens()){
add(stringTokenizer.nextToken());
}
String str[]=list.toArray(新字符串[list.size()]);
System.out.println(java.util.array.toString(str));

StringTokenizer的构造函数接受要标记的字符串和分隔符。

使用
返回s.split(\\s);
相反。从:
StringTokenizer
是一个遗留类,出于兼容性原因保留了它,尽管在新代码中不鼓励使用它。建议寻求此功能的任何人使用
String
split
方法或
java.util.regex
包。是的,我同意你的看法只是用另一种方式尝试而已
return sb.toString().split("\\s");.
String exampleString = "testTable Table 1280 720 350 350 1";
StringTokenizer stringTokenizer = new StringTokenizer(exampleString," ");
List<String> list = new ArrayList<String>();
while (stringTokenizer.hasMoreTokens()){
     list.add(stringTokenizer.nextToken());
 }
String str[] = list.toArray(new String[list.size()]);
System.out.println(java.util.Arrays.toString(str));