【问题标题】:Use linked list or array to reverse a string in Java?使用链表或数组来反转Java中的字符串?
【发布时间】:2014-05-18 00:38:32
【问题描述】:

我相信我们可以使用 for 循环来反转 Java 中的字符串。就像下面这样:

String[] name = new String[10];

for(int i = name.length; i >0; i--){

    System.out.print(name[i-1]);

}

但另一个实现是使用 LinkedList。所以我的理解是当客户端不确定字符串数组可能动态增加多长时间时使用 LinkedList。对吗?

【问题讨论】:

  • 何时使用-a-linked-list-over-an-array-array-list stackoverflow.com/questions/393556/…
  • 逐个字符反转字符串对于 BMP 之外的 Unicode 代码点不起作用!
  • 这是一个字符串数组,而不是一个字符串...您正在以相反的顺序打印数组中的字符串。
  • 谢谢劳尔。这对我很有帮助。
  • 同意@AmirBawab tha 是有道理的。

标签: java arrays string linked-list reverse


【解决方案1】:

可以使用字符的链接列表来执行此操作。

在这种情况下,可以将数组列表视为长度不受限制的数组。为此,我们不会将值添加到数组的 END 中,而是将它们添加到链表的 BEGINNING 中

LinkedList<Character> linkedList = new LinkedList<Character>();
String str = "Hello World";

for (int i = 0; i < str.length(); i++) {
    linkedList.addFirst(str.charAt(i));
}

//whenever it is time to print the value....
for (char c : linkedList) {
    //Print it out, one character at a time
    System.out.print(c);
}

当您需要添加更多字符时,只需使用 linkedList.addFirst() 将其附加到开头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2020-02-22
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多