无法解析此String然后返回它

时间:2012-12-04 02:36:51

标签: java

我一直试图将这个字符串格式“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[];

}

它不会编译,但我无法从逻辑上找出问题所在。

4 个答案:

答案 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)

有几个“逻辑”问题:

  1. 您有2个返回语句,没有花括号来分隔循环逻辑。 (虽然没有必要,但它是java惯例,更易于阅读,并减少了看不见的错误的机会。

    parse() {
        return new String myarray[] {t, t};
        return myarray[];
    }
    

    删除后者。

  2. 使用var名称'myarray'是多余的,删除它们保持array []声明语法。

  3. 您正在使用某种方法。

    从方法中提取变量会更好。

    public static String[] parse(String toParse) {
        return toParse.split(" -> ");
    }
    
  4. 从错误中看,你真正想要的格式返回的是什么格式?您是否想要通过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;
    }