logo

Obrnite niz v Javi

Ta članek obravnava različne načine obračanja niza v Javi s primeri.

Primeri:



ukaz za namestitev npm

niz-obraten

Prerequisite:  String vs StringBuilder vs StringBuffer in Java>

Sledi nekaj zanimivih dejstev o razredih String in StringBuilder:

  1. Objekti niza so nespremenljivi.
  2. Razred nizov v Javi nima metode reverse(), vendar pa ima razred StringBuilder vgrajeno metodo reverse().
  3. Razred StringBuilder nima metode toCharArray(), medtem ko ima razred String metodo toCharArray().
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>

Izvedba:



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>

>

>

Izhod

Original word: Geeks Reversed word: skeeG>

Pretvarjanje niza v bajte: metoda getBytes() se uporablja za pretvorbo vhodnega niza v bajte[].

metoda:

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.>

Izvedba:

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

>

>

Izhod

skeeGrofskeeG>

Uporaba vgrajene metode reverse() razreda StringBuilder:

Razred String nima metode reverse(), vhodni niz moramo pretvoriti v StringBuilder, kar dosežemo z uporabo metode append StringBuilderja. Nato natisnite znake obrnjenega niza s skeniranjem od prvega do zadnjega indeksa.

Izvedba:

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

>

>

Izhod

skeeG rof skeeG>

Pretvarjanje niza v niz znakov: Uporabnik vnese niz, ki ga želite obrniti.

metoda:

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.>

Izvedba:

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

>

>

Izhod

skeeGroFskeeG>
  • Pretvorite vhodni niz v niz znakov z uporabo toCharArray(): Pretvorite vhodni niz v matriko znakov z uporabo metode toCharArray() – vgrajene metode razreda String. Nato preglejte matriko znakov z obeh strani, tj. od začetnega indeksa (levo) kot tudi od zadnjega indeksa (desno) hkrati.
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.>

Izvedba:

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

linux arhitektura
>

>

Izhod

skeeG roF skeeG>
  • Uporaba predmeta ArrayList: Pretvorite vhodni niz v matriko znakov z uporabo vgrajene metode toCharArray(). Nato dodajte znake matrike v objekt ArrayList. Java ima tudi vgrajeno metodo reverse() za razred Collections. Ker metoda razreda Collections reverse() prevzame predmet seznama, bomo za obračanje seznama posredovali objekt ArrayList, ki je vrsta seznama znakov.
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.>

Izvedba:

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

>

>

Izhod

skeeG roF skeeG>

Uporaba StringBuffer:

Razred String nima metode reverse(), vhodni niz moramo pretvoriti v StringBuffer, kar dosežemo z uporabo obratne metode StringBuffer.

Izvedba:

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

>

>

Izhod

skeeG>
  • Obračanje niza z vnosom od uporabnika

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

>

>

Izhod

0>

V zgornji kodi v bistvu beremo niz od uporabnika, preden začnemo iteracijsko zanko, da ustvarimo nov, obrnjen niz. Funkcija charAt razreda String se uporablja za pridobitev vsakega znaka izvirnega niza posebej od konca, operater + pa se uporablja za njihovo združevanje v nov niz.

Uporaba sklada:

Ideja sklada je, da bomo dostopali samo do zgornjega elementa sklada, tako da vključuje 2 koraka, kot sledi:

  1. potisnite vse znake v kup.
  2. izloči vse znake iz sklada in pripni v začasni niz.

Spodaj je implementacija zgornjega pristopa.

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>

>

>

Izhod

Reversed string is : skeeG roF skeeG>

Časovna kompleksnost : O(N) N je dolžina niza

Pomožni prostor: O(N) za sklad

Sorodni članek: Različne metode za obračanje niza v C/C++

Ta članek je prispeval Gospod. Somesh Awasthi .