ArrayList中每个条目中字符的反向顺序

时间:2013-04-24 18:00:26

标签: java arraylist

我有一个包含许多条目的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中条目的顺序,但这实际上并没有按照我的意愿去做。

4 个答案:

答案 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)

这样做:

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);
    }