【问题标题】:Reverse order of characters in every entry in an ArrayList [duplicate]ArrayList中每个条目中字符的反转顺序[重复]
【发布时间】:2023-03-16 16:26:01
【问题描述】:

我有一个包含多个条目的 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 希望保持 a​​rraylist 元素的顺序,但希望将每个元素替换为反转为字符串的元素。

标签: java 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 下。
        猜你喜欢
        • 2016-04-30
        • 1970-01-01
        • 2013-08-07
        • 2015-11-13
        • 1970-01-01
        • 1970-01-01
        • 2021-12-01
        • 2010-11-03
        • 2011-11-07
        相关资源
        最近更新 更多