2016-05-31 91 views
0

我想打印array.My阵列一些元素是什么样子,改变迭代变量中的for循环

prmArray={"[]","int","[]","[]","float","[]","[]","[]","string"} 

我想要打印的,

int[] float[][] string[][][] 

我一直在尝试不同的东西,它让凌乱现在.. 我的代码,

String ps=""; 
int u=0; 
    for(int y=0;y<prmArray.length;y=u) 
     { 
      String br_string=""; 

      if(prmArray[y].equals("[]")){ 
       int f=y+1; 
       br_string+="[]"; 
       for(int h=f;h<prmArray.length;h++){ 
        u=h; 
        if(prmArray[h]=="[]"){ 
         br_string+="[]"; 
        } 
        else{ 
         u=u-1; 
         break; 
        } 
       } 
       ps+=prmArray[u+1]+br_string+" "; 
       u=u+2; 
      } 

      else{ 
       ps+=prmArray[y]+" "; 
       u=u+1; 
      } 
     } 
     System.out.println(ps); 

请帮助..

+0

您可以创建一个堆栈。 –

+0

如果以下任何答案解决了您的问题,您可以考虑接受一个答案,以便将问题标记为已解决:http://stackoverflow.com/help/someone-answers – Keiwan

回答

0

您可以使用此功能:

public static String formatArray(String[] prmArray){ 
    String result = ""; 
    String tempResult = ""; 
    for (String entry: prmArray){ 
     if(entry.equals("[]")){ 
      tempResult += entry; 
     }else{ 
      tempResult = entry + tempResult; 
      //flip tempResult 
      result += tempResult + " "; 
      tempResult = ""; 
     } 
    } 
    return result; 
} 
0

协议栈实现:

import java.util.Stack; 

public class Stk { 
    public static void main(String...orange) 
    { 
     String [] prmArray={"[]","int","[]","[]","float","[]","[]","[]","string"}; 
     Stack<String> stack = new Stack<String>(); 
     for (String str : prmArray) 
     { 
      if (str.equals("[]")) 
       stack.push(str); 
      else 
      { 
       while(!stack.isEmpty()) 
        str+=stack.pop(); 
       System.out.print(str + " "); 
      } 
     } 
    } 
} 

输出:

int[] float[][] string[][][] 
0

如果我有很好的理解你正在尝试做的,你不” t需要嵌套循环,你可以一次完成,把你到目前为止遇到的 "[]"。 当你发现别的东西,你建立你的最终结果(ps)的一部分,并继续;-)

public static void main(String[] args) { 
    String[] prmArray={"[]","int","[]","[]","float","[]","[]","[]","string"}; 

    String ps = ""; 
    String br_string=""; 

    for (int i = 0 ; i< prmArray.length ; i++) { 

     if(prmArray[i].equals("[]")){ 
      br_string += prmArray[i]; 
     } else { 
      br_string = prmArray[i] + br_string + " "; 
      ps += br_string; 
      br_string = ""; 
     } 
    } 

    System.out.println(ps); 

}