ArrayList中每个条目中字符的反转顺序[重复]
Posted
技术标签:
【中文标题】ArrayList中每个条目中字符的反转顺序[重复]【英文标题】:Reverse order of characters in every entry in an ArrayList [duplicate] 【发布时间】:2013-04-18 10:06:54 【问题描述】:我有一个包含多个条目的 ArrayList,我想颠倒顺序或字符,所以如果我的代码如下所示:
public class Test
ArrayList<String> aa = new ArrayList<String>();
aa.add("hello");
aa.add("goodbye");
(reverse them in some way)
那么我希望 ArrayList 包含的是:
olleh
eybdoog
我只是设法使用 Collections.reverse 更改了整个 ArrayList 中条目的顺序,但这确实不是我想要的。
【问题讨论】:
其实不是一回事。 OP 希望保持 arraylist 元素的顺序,但希望将每个元素替换为反转为字符串的元素。 【参考方案1】:StringBuilder
class(可变字符串)包含切换 StringBuilder 字符的反向操作。
int size = aa.size();
for(int i = 0; i < size; ++i)
StringBuilder builder = new StringBuilder(aa.get(i));
builder.reverse(); //reverse the StringBuilder
aa.set(i, builder.toString());
【讨论】:
【参考方案2】:又快又脏的版本——改变原来ArrayList
里面的Strings
:
for(int i = 0; i < aa.size(); i++)
aa.set(i, new StringBuilder(aa.get(i)).reverse().toString());
【讨论】:
【参考方案3】:这是一个线性时间实现,在原地修改列表。
public void reverseStr(List<String> theArgs)
for(int i = 0; i < theArgs.size(); i++)
String s = theArgs.get(i);
theArgs.set(i, new StringBuffer(s).reverse().toString());
【讨论】:
【参考方案4】:这样做:
Best way to reverse a string
static void Main(string[] args)
var aa = new List<String>();
aa.Add("hello");
aa.Add("goodbye");
var x = from s in aa select Reverse(s);
foreach (var c in x)
Console.WriteLine(c.ToString( ));
Console.ReadLine();
public static string Reverse(string s)
char[] charArray = s.ToCharArray();
Array.Reverse(charArray);
return new string(charArray);
【讨论】:
这是 C# 吗?我猜这个问题已经被标记在 Java 下。以上是关于ArrayList中每个条目中字符的反转顺序[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题100天—3. 无重复字符的最长子串(双指针)—day21