【问题标题】:Convert Arrays inside ArrayDeque to String将 ArrayDeque 中的数组转换为字符串
【发布时间】:2017-02-15 17:13:23
【问题描述】:

我正在尝试返回从 ArrayDeque 内给定数组的第二个元素中提取的字符串

我尝试在 ToArray 之后强制转换它和 toString 和串联,但我得到了这个......我需要将它作为字符串返回

"表达式的类型必须是数组类型但解析为字符串"

    ArrayDeque<String[]> bindings_and_var = new ArrayDeque();

public ArrayDeque<String[]> pushBindings(String var, String bindings) {
    //var first element, bindings 2nd
    String[] this_bindings_and_var = new String[2];

    bindings_and_var.addLast(this_bindings_and_var);
    return bindings_and_var;
}

public ArrayDeque<String[]> bindingsVal() {

    return bindings_and_var;
}

public String lookup(int index) {
    String[] array = (String[]) bindings_and_var.toArray();

     //PROBLEM AREA vvv
    String s = "" + array[index][1];


    return s;

【问题讨论】:

    标签: java string arraydeque


    【解决方案1】:

    您的lookup 方法应如下所示:

    public String lookup(int index) 
    {
        int counter = 0;
        for (Iterator<String[]> itr = bindings_and_var.iterator(); itr.hasNext();)
        {
            String[] t = itr.next();
    
            if (counter == index)
            {
                return t[1];
            }
    
            counter++;
        }
    }
    

    【讨论】:

      【解决方案2】:

      您已将 Deque 定义为 String[],而当您执行 bindings_and_var.toArray(); 时,您将收到对象数组,其中每个对象都为 String 数组。试试吧,

          Object[] array = (String[]) bindings_and_var.toArray();
      
          Object obj = array[index];
          String[] myArray = (String[])obj; 
          String s = "" + myArray[1];
      

      或者

          int i = 0;
          for (String[] s : bindings_and_var) {
              if (i == index) {
                  return s[1];
              }
              i++;
          }
      

      这样您就不必迭代整个集合。

      【讨论】:

        猜你喜欢
        • 2017-05-21
        • 2017-11-27
        • 2011-06-18
        • 1970-01-01
        • 1970-01-01
        • 2018-03-08
        相关资源
        最近更新 更多