我有一个包含许多条目的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中条目的顺序,但这实际上并没有按照我的意愿去做。
答案 0 :(得分:3)
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());
}
答案 1 :(得分:1)
快速而肮脏的版本 - 更改原始Strings
内的ArrayList
:
for(int i = 0; i < aa.size(); i++) {
aa.set(i, new StringBuilder(aa.get(i)).reverse().toString());
}
答案 2 :(得分:0)
这是一个线性时间实现,修改了列表。
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());
}
}
答案 3 :(得分:-2)
这样做:
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);
}