Java元串反転(5 Ways To Reverse A String In Java)

5450 ワード

java元文字列の反転について、本稿では5つの異なる方法を紹介します。
部分参考文章:http://javahungry.blogspot.com/2014/12/5-ways-to-reverse-string-in-java-with-example.html
前に書く:
  • StringBufferクラスは、直接に文字列を反転させることができますが、Stringクラスにはこの方法がありません。
  • Stringクラスでは、文字列を1つのchar[]配列に変換することができるtoCharararray()方法を提供する。StringBuffer類にもこの方法は存在しない
  • です。
    JAVA APIを参照してください
    StringBuffer類のpublic StringBuffer reverse()は、この文字列を反転させて代用します。シーケンス内にプロキシ項目が存在する場合、reverse動作では単一の文字として処理される。したがって、高−低エージェント項目の順序は反転しない。nがreverse方式を実行する前のこの文字列の文字長(char値の長さではない)であると仮定すると、新しい文字列のインデックスkの文字は元の文字列索引n-k-1の文字に等しくなります。は、このオブジェクトの参照です。
    Stringクラスpublic char[]toCharararray()はこの文字列を新しい文字配列に変換します。返します。新しい割り当てられた文字列の長さはこの文字列の長さで、その内容はこの文字列の表現を含む文字列に初期化されます。
    方法1:String類が持参するtoCharararray()を使用して、文字配列の最後のビットから印刷を開始します。
    import java.io.*;
    import java.util.*;
    
    public class reverseString {
        public static void main(String[] args) {
            String input="";
            System.out.println("Enter the input string");
            try
            {   //         
                BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
                input = br.readLine();
                char[] try1= input.toCharArray();
                for (int i=try1.length-1;i>=0;i--){
                    System.out.print(try1[i]);
                }
            }
            catch (IOException e) {
                e.printStackTrace();
            }
    }}
    方法2:StringBuffer類が持参するreverse()を使って、文字配列の第一位から印刷を開始します。
    import java.io.*;
    import java.util.*;
    
    public class reverseString {
        public static void main(String[] args) {
             String input="AliveisAwesome";
             StringBuilder input1 = new StringBuilder();
             input1.append(input);
             input1=input1.reverse(); 
             for (int i=0;iout.print(input1.charAt(i)); 
             } 
        }
     }
    方法3:toCharararray()変換後の文字配列要素を逆順化し、A[N-1]とA[0]を交換し、A[N-2]とA[1]を交換します。Left==Rightまで。
    import java.io.*;
    import java.util.*;
    
    public class reverseString {
     public static void main(String[] args) {
        String input = "Be in present";
        char[] temparray= input.toCharArray();
        int left,right=0;
        right=temparray.length-1;
        for (left=0; left < right ; left++ ,right--)
        {
         //       
         char temp = temparray[left];
         temparray[left] = temparray[right];
         temparray[right]=temp;
        }
        for (char c : temparray)
           System.out.print(c);
           System.out.println();
        }
     }
    ==========以下の方法はまだ完全ではないので、間違いがあれば指摘を歓迎します。============================================================
    方法4:Java Collectionクラスでも、List<>listのパラメータがlistであるため、この方法を使用するには、Stringを文字配列に変換してlistに保存しなければならない。ここではLinked Listを使用して、挿入時に挿入順序を保持しているので、Linked Listを使用する。
    import java.io.*;
    import java.util.*;
    
    public class reverseString {
     public static void main(String[] args) {
         String input = "Be in present";
         char[] hello=input.toCharArray();
         List trial1= new LinkedList<>();
         for(char c: hello)
             trial1.add(c);
         Collections.reverse(trial1);
         ListIterator li = trial1.listIterator();  
         while(li.hasNext()){
            System.out.print(li.next());}  
         }
       }