我一直试图将这个字符串格式“X - > i”解析为String [“X”]和String [“i”]一段时间,但还没有让它工作。任何人都可以帮助我吗?
我试过了:
public String[] parse(){
String s = "X -> i";
String[] tokens = s.split(" -> ");
for (String t : tokens)
return new String myarray[] {t, t};
return myarray[];
}
它不会编译,但我无法从逻辑上找出问题所在。
答案 0 :(得分:1)
public String[] parse(){
String s = "X -> i";
String[] tokens = s.split(" -> ");
return tokens;
}
答案 1 :(得分:0)
它比那简单得多
public String[] parse(){
String s = "X -> i";
String[] tokens = s.split(" -> ");
return tokens;
}
答案 2 :(得分:0)
您的编译错误来自于您有两个return语句。你只需要一个。一旦你修正了这个错误(你问过的那个),就必须考虑其他的答案。
答案 3 :(得分:0)
有几个“逻辑”问题:
您有2个返回语句,没有花括号来分隔循环逻辑。 (虽然没有必要,但它是java惯例,更易于阅读,并减少了看不见的错误的机会。
parse() {
return new String myarray[] {t, t};
return myarray[];
}
删除后者。
使用var名称'myarray'是多余的,删除它们保持array []声明语法。
您正在使用某种方法。
从方法中提取变量会更好。
public static String[] parse(String toParse) {
return toParse.split(" -> ");
}
从错误中看,你真正想要的格式返回的是什么格式?您是否想要通过split方法生成的实际令牌数组?或者你想要两个数组。这是后者的一些疯狂代码。
public String[][] parse(String toParse) {
// String s = "X -> i";
String[] tokens = toParse.split(" -> ");
String[][] temp = new String[tokens.length][];
int i = 0;
for (String t : tokens) {
temp[i++] = new String[] { t, t };
}
return temp;
}