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));