【问题标题】:Java: ArrayList to String?Java:ArrayList 到字符串?
【发布时间】:2012-10-22 17:12:38
【问题描述】:

我尝试在没有任何 for 循环的情况下打印输入数字的反向。但是我在打印 Arraylist 时遇到了一些问题。如何将 Arraylist [3, 5, 4, 1] 打印为 3541 - 不带括号、逗号和空格?

如果不可能,如何将我的 ArrayList 元素添加到 stringlist 然后打印?

public static void main(String[] args) {

    int yil, bolum = 0, kalan;
    Scanner klavye = new Scanner(System.in);
    ArrayList liste = new ArrayList();
    //String listeStr = new String();
    System.out.println("Yıl Girin: "); // enter the 1453
    yil = klavye.nextInt();

    do{ // process makes 1453 separate then write in the arraylist like that [3, 5, 4,1]

        kalan = yil % 10;
        liste.add(kalan);
        bolum = yil / 10;
        yil = bolum;

    }while( bolum != 0 );

    System.out.println("Sayının Tersi: " + ....); //reverse of the 1453
    klavye.close();
}

【问题讨论】:

标签: java arrays string arraylist


【解决方案1】:
  • 以字符串形式读取条目
  • String reverse = new StringBuilder(input).reverse().toString(); 反转它
  • 可选:如果您需要使用该 int 进行一些计算,请将其解析为 int。

【讨论】:

  • [1,23] 将变为 231 的 321。我认为这是预期的输出。
  • 我的理解是用户输入一个数字(在给定示例中为1453),目标是反转该数字(在给定示例中为3541)。我可能误会了。
  • 但是,如果其中一个数字大于 9,那是什么?我认为这还不清楚。
【解决方案2】:
public static void main(String[] args) {


    int yil, bolum = 0, kalan;
    ArrayList liste = new ArrayList();
    System.out.println("Yıl Girin: "); // enter the 1453
    yil = 1453;

    String s="";
    do { // process makes 1453 separate then write in the arraylist like that [3, 5, 4,1]

        kalan = yil % 10;
        liste.add(kalan);
        s= s + kalan;  // <------- THE SOLUTION AT HERE  -------

        bolum = yil / 10;
        yil = bolum;

    } while (bolum != 0);

    System.out.println("Sayının Tersi: " + s ); //reverse of the 1453

}

【讨论】:

  • StringBuilder 在这里附加字符会更好,但这似乎最适合解决这里的整体 FIFO 问题,所以 +1!
【解决方案3】:

- 使用Collections.reverse(List&lt;?&gt; l)可以轻松获得反向

例如:

ArrayList<String> aList = new ArrayList<String>();

Collections.reverse(aList);

-使用For-Each循环打印出来。

例如:

for(String l : aList){

    System.out.print(l);

}

【讨论】:

    【解决方案4】:
    List strings = ...
    List stringsRevers = Collections.reverse(strings);
    // Have to reverse the input
    // 1,23 -> 231 
    // otherwise it would be 321   
    StringBuilder sb = new StringBuiler();
    for(String s: stringsRevers ){
        sb.ppend(s);
    }
    String out = sb.toString();
    

    【讨论】:

      猜你喜欢
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      相关资源
      最近更新 更多