logo

Vend en streng i Java

Denne artikel diskuterer forskellige måder at vende en streng på i Java med eksempler.

Eksempler:



streng-omvendt

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Følgende er nogle interessante fakta om String og StringBuilder klasser:

  1. Objekter af streng er uforanderlige.
  2. String-klassen i Java har ikke reverse()-metoden, men StringBuilder-klassen har indbygget reverse()-metoden.
  3. StringBuilder-klassen har ikke toCharArray()-metoden, mens String-klassen har toCharArray()-metoden.
1. The idea is to traverse the length of the string  2. Extract each character while traversing  3. Add each character in front of the existing string>

Implementering:



Java






// java program to reverse a word> import> java.io.*;> import> java.util.Scanner;> class> GFG {> >public> static> void> main (String[] args) {> > >String str=>'Geeks'>, nstr=>''>;> >char> ch;> > >System.out.print(>'Original word: '>);> >System.out.println(>'Geeks'>);>//Example word> > >for> (>int> i=>0>; i { ch= str.charAt(i); //extracts each character nstr= ch+nstr; //adds each character in front of the existing string } System.out.println('Reversed word: '+ nstr); } } //Contributed by Tiyasa>

>

>

Produktion

Original word: Geeks Reversed word: skeeG>

Konvertering af streng til bytes: metoden getBytes() bruges til at konvertere inputstrengen til bytes[].

Metode:

1. Create a temporary byte[] of length equal   to the length of the input string. 2. Store the bytes (which we get by using   getBytes() method) in reverse order into   the temporary byte[] . 3. Create a new String abject using byte[] to  store result.>

Implementering:

Java




// Java program to ReverseString using ByteArray.> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'techcodeview.com'>;> >// getBytes() method to convert string> >// into bytes[].> >byte>[] strAsByteArray = input.getBytes();> >byte>[] result =>new> byte>[strAsByteArray.length];> >// Store result in reverse order into the> >// result byte[]> >for> (>int> i =>0>; i result[i] = strAsByteArray[strAsByteArray.length - i - 1]; System.out.println(new String(result)); } }>

>

>

Produktion

skeeGrofskeeG>

Brug af den indbyggede reverse() metode i StringBuilder-klassen:

String-klassen har ikke reverse()-metoden, vi skal konvertere inputstrengen til StringBuilder, hvilket opnås ved at bruge append-metoden i StringBuilder. Udskriv derefter tegnene i den omvendte streng ved at scanne fra første til sidste indeks.

Implementering:

Java




// Java program to ReverseString using StringBuilder> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'Geeks for Geeks'>;> >StringBuilder input1 =>new> StringBuilder();> >// append a string into StringBuilder input1> >input1.append(input);> >// reverse StringBuilder input1> >input1.reverse();> >// print reversed String> >System.out.println(input1);> >}> }>

>

>

Produktion

skeeG rof skeeG>

Konvertering af streng til tegnarray: Brugeren indtaster strengen, der skal vendes.

Metode:

1. First, convert String to character array  by using the built in Java String class   method toCharArray(). 2. Then, scan the string from end to start,   and print the character one by one.>

Implementering:

Java




// Java program to Reverse a String by> // converting string to characters one> // by one> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'GeeksForGeeks'>;> >// convert String to character array> >// by using toCharArray> >char>[] try1 = input.toCharArray();> >for> (>int> i = try1.length ->1>; i>=>0>; i--)> >System.out.print(try1[i]);> >}> }>

>

>

Produktion

skeeGroFskeeG>
  • Konverter inputstrengen til tegnarray ved at bruge toCharArray(): Konverter inputstrengen til tegnarray ved at bruge toCharArray() – indbygget metode i String Class. Scan derefter tegnarrayet fra begge sider, dvs. fra startindekset (venstre) såvel som fra sidste indeks (højre) samtidigt.
1. Set the left index equal to 0 and right   index equal to the length of the string -1. 2. Swap the characters of the start index   scanning with the last index scanning   one by one. After that, increase the left   index by 1 (left++) and decrease the right   by 1 i.e., (right--) to move on to the next   characters in the character array . 3. Continue till left is less than or equal to  the right.>

Implementering:

Java




// Java program to Reverse a String using swapping> // of variables> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'Geeks For Geeks'>;> >char>[] temparray = input.toCharArray();> >int> left, right =>0>;> >right = temparray.length ->1>;> >for> (left =>0>; left // Swap values of left and right char temp = temparray[left]; temparray[left] = temparray[right]; temparray[right] = temp; } for (char c : temparray) System.out.print(c); System.out.println(); } }>

>

>

Produktion

skeeG roF skeeG>
  • Brug af ArrayList-objekt: Konverter inputstrengen til tegnarrayet ved at bruge toCharArray() indbygget metode. Tilføj derefter tegnene i arrayet i ArrayList-objektet. Java har også indbygget reverse() metode til klassen Collections. Da Collections class reverse()-metoden tager et listeobjekt, vil vi for at vende listen videregive ArrayList-objektet, som er en type liste af tegn.
1. We copy String contents to an object   of ArrayList. 1. We create a ListIterator object by using   the listIterator() method on the ArrayList   object. 2. ListIterator object is used to iterate over   the list. 3. ListIterator object helps us to iterate   over the reversed list and print it one   by one to the output screen.>

Implementering:

Java




// Java program to Reverse a String using ListIterator> import> java.lang.*;> import> java.io.*;> import> java.util.*;> // Class of ReverseString> class> ReverseString {> >public> static> void> main(String[] args)> >{> >String input =>'Geeks For Geeks'>;> >char>[] hello = input.toCharArray();> >List trial1 =>new> ArrayList();> >for> (>char> c : hello)> >trial1.add(c);> >Collections.reverse(trial1);> >ListIterator li = trial1.listIterator();> >while> (li.hasNext())> >System.out.print(li.next());> >}> }>

>

>

Produktion

skeeG roF skeeG>

Brug af StringBuffer:

String-klassen har ikke reverse()-metoden, vi skal konvertere inputstrengen til StringBuffer, hvilket opnås ved at bruge den omvendte metode af StringBuffer.

Implementering:

Java




// Java program to demonstrate conversion from> // String to StringBuffer and reverse of string> import> java.lang.*;> import> java.io.*;> import> java.util.*;> public> class> Test {> >public> static> void> main(String[] args)> >{> >String str =>'Geeks'>;> >// conversion from String object to StringBuffer> >StringBuffer sbr =>new> StringBuffer(str);> >// To reverse the string> >sbr.reverse();> >System.out.println(sbr);> >}> }>

>

>

Produktion

skeeG>
  • Reversering af streng ved at tage input fra bruger-

Java




/*package whatever //do not write package name here */> import> java.io.*;> import> java.util.Scanner;> class> GFG {> >public> static> void> main (String[] args) {> >Scanner scanner =>new> Scanner(System.in);> >String Str = scanner.nextLine();> >char>[] arr = Str.toCharArray();> > >String rev =>''>;> > >for>(>int> i = Str.length() ->1>; i>=>0>; i--)> >{> >rev = rev + Str.charAt(i);> >}> > >System.out.println(rev);> > >}> }> >

>

>

Produktion

0>

I ovenstående kode læser vi i det væsentlige en streng fra brugeren, før vi starter en iterationsløkke for at skabe en ny, omvendt streng. CharAt-funktionen i String-klassen bruges til at hente hvert tegn i den originale String individuelt fra slutningen, og + operatoren bruges til at sammenkæde dem i en ny String.

arraylist i java sortering

Brug af stak:

Ideen med stack er, at vi kun får adgang til det øverste element i en stack, så det inkluderer 2 trin som følger:

  1. skub alle karaktererne i stakken.
  2. pop alle tegnene fra stakken og føj til midlertidig streng.

Nedenfor er implementeringen af ​​ovenstående tilgang.

Java




import> java.util.*;> class> GFG {> >public> static> void> main(String[] args) {> > >String s=>'Geeks For Geeks'>;> > >//initializing a stack of type char> >Stack stack=>new> Stack();> > >for>(>char> c:s.toCharArray())> >{> >//pushing all the characters> >stack.push(c);> >}> > >String temp=>''>;> > >while>(!stack.isEmpty())> >{> >//popping all the chars and appending to temp> >temp+=stack.pop();> >}> > >System.out.println(>'Reversed string is : '>+temp);> > >}> }> //This code is contributed by aeroabrar_31>

>

>

Produktion

Reversed string is : skeeG roF skeeG>

Tidskompleksitet: O(N) N er længden af ​​strengen

Hjælpeplads: O(N) til stak

Relateret artikel: Forskellige metoder til at vende en streng i C/C++

Denne artikel er bidraget af Hr. Somesh Awasthi .