ย้อนกลับสตริงใน Java


467

ฉันได้เก็บไว้ในตัวแปรสตริงชื่อ"Hello World"hi

ฉันต้องการพิมพ์ แต่กลับด้าน

ฉันจะทำสิ่งนี้ได้อย่างไร ฉันเข้าใจว่ามีฟังก์ชั่นบางอย่างที่มีอยู่แล้วใน Java ที่ทำเช่นนั้น

ที่เกี่ยวข้อง: ย้อนกลับคำแต่ละคำของสตริง“ Hello World” ด้วย Java


7
@JRL ควรเป็น String ih = "dlroW olleH"; System.out.println (IH);
Matthew Farwell

4
ฉันหวังว่าฉันสามารถถอนการโหวตอย่างใกล้ชิดของฉัน (ซ้ำ) ฉันอ่านคำถามอื่นอีกครั้งและรู้ว่ามันต่างจากนี้เล็กน้อย อย่างไรก็ตามคำถามนี้ยังคงซ้ำซ้อนกันหลายครั้งทั่วทั้งไซต์ น่าจะเป็นเพียงการหาคำถามที่แตกต่างเพื่อทำเครื่องหมายนี้เป็นของ
Rob Hruska

คุณสามารถใช้ฟังก์ชัน reverse () ของคลาส StringBuilder, วิธี toCharArray (), การสลับอักขระและอื่น ๆ อีกมากมาย อ้างอิงแหล่งข้อมูลนี้สำหรับตัวอย่างเพิ่มเติมflowerbrackets.com/2-best-ways-to-reverse-a-string-in-java
Shiva

StringBuilder.reverse ()เป็นโซลูชันที่อ่านง่ายและสง่างาม
lokesh

คำตอบ:


980

คุณสามารถใช้สิ่งนี้:

new StringBuilder(hi).reverse().toString()

หรือสำหรับรุ่นที่เก่ากว่า JDK 1.5 ให้ใช้java.util.StringBufferแทนStringBuilder- มี API เดียวกัน ขอบคุณผู้แสดงความคิดเห็นที่ชี้ให้เห็นว่าStringBuilderเป็นที่ต้องการในทุกวันนี้เมื่อไม่มีข้อกังวลพร้อมกัน


13
"ขอบคุณผู้แสดงความคิดเห็นสำหรับการชี้ให้เห็นว่า StringBuilder เป็นที่ต้องการในปัจจุบัน" มีคำสั่งที่ชัดเจนว่า StringBuffer ถ้ากังวลเรื่องความปลอดภัย มิฉะนั้น StringBuilder สามารถใช้ StringBuilder ไม่ใช่การแทนที่สำหรับ StringBuffer
ha9u63ar

15
@ ha9u63ar สำหรับสถานการณ์นี้ด้วยการStringBuilderเห็นพ้องด้วยกับการปล่อยทิ้งในพื้นที่ไม่ใช่สิ่งที่น่ากังวล (และฉันคิดว่านั่นคือสิ่งที่เขาหมายถึง)
xehpuk

2
นี่คือลิงก์ที่จะทราบถึงความแตกต่างที่แน่นอนระหว่างสอง: javatpoint.com/ ในระยะสั้น: StringBuilder มีประสิทธิภาพมากกว่า StringBuffer มันไม่ปลอดภัยเธรดเช่นหลายกระทู้สามารถเรียกวิธีการของ StringBuilder พร้อมกัน
Vishnu Narang

สิ่งนี้จะไม่ทำงานสำหรับอักขระ Unicode นอก BMP ตราบใดที่มีการรวมอักขระ
พฤศจิกายน

2
@Daniel Brockman ขอบคุณสำหรับคำตอบที่ดีและกระชับ นี่ OP กล่าวว่าฉันมี "Hello World" เก็บไว้ในตัวแปรสตริงชื่อสวัสดี String hi = "Hello World";ซึ่งหมายความว่า ดังนั้นผมจึงคิดว่าในคำตอบของคุณควรมีไม่ได้hiเป็นคำพูดสองรอบ ฉันหมายความว่ามันควรจะเป็นเช่นนี้new StringBuilder(hi).reverse().toString()
Md. Abu Nafee Ibna Zahid

109

สำหรับปัญหาผู้พิพากษาออนไลน์ที่ไม่อนุญาตให้StringBuilderหรือStringBufferคุณสามารถทำมันได้ในสถานที่ที่ใช้char[]ดังต่อไปนี้:

public static String reverse(String input){
    char[] in = input.toCharArray();
    int begin=0;
    int end=in.length-1;
    char temp;
    while(end>begin){
        temp = in[begin];
        in[begin]=in[end];
        in[end] = temp;
        end--;
        begin++;
    }
    return new String(in);
}

เพียงแค่ทราบว่า สิ่งนี้จะล้มเหลวอย่างน่ากลัวสำหรับ "ตัวอักษร" ที่มีสองไบต์
Minas Mina

จริงๆแล้วมันใช้งานได้ดีสำหรับตัวละครส่วนใหญ่ที่มีขนาด 2 ไบต์ สิ่งที่มันล้มเหลวจริงๆคือ Unicode codepoints ที่ครอบครองโค้ดยูนิต 2 x 16 บิต (ใน UTF-16)
สตีเฟ่นซี

นี่เป็นทางออกที่ดี แต่เราสามารถทำสิ่งเดียวกันได้ถ้าเรามีตัวอักษร 10k ในสตริงที่มีความซับซ้อนน้อยที่สุด
Jatinder Kumar

62
public static String reverseIt(String source) {
    int i, len = source.length();
    StringBuilder dest = new StringBuilder(len);

    for (i = (len - 1); i >= 0; i--){
        dest.append(source.charAt(i));
    }

    return dest.toString();
}

http://www.java2s.com/Code/Java/Language-Basics/ReverseStringTest.htm


4
ทางออกที่ดี (1+) One Enhancement - StringBuilder (ตั้งแต่ java5) จะเร็วกว่า StringBuffer ความนับถือ.
MichałŠrajer

31
สิ่งนี้จะไม่ทำงานในกรณีทั่วไปเนื่องจากไม่คำนึงว่า "ตัวอักษร" ในยูนิโค้ดบางตัวจะถูกแทนด้วยคู่ตัวแทนคือ Java Chars สองตัวและโซลูชันนี้ส่งผลให้คู่อยู่ในลำดับที่ไม่ถูกต้อง วิธีการย้อนกลับของ StringBuilder ควรปรับตาม JavaDoc: docs.oracle.com/javase/7/docs/api/java/lang/…
Ian Fairman

59
String string="whatever";
String reverse = new StringBuffer(string).reverse().toString();
System.out.println(reverse);

7
ความซับซ้อนของมันคืออะไร? O (N) ขึ้นไป? N เท่ากับความยาวของสตริง
Mukit09

O (n) เนื่องจากมันต้องวนซ้ำผ่านตัวอักษรของสตริงอย่างน้อยหนึ่งครั้ง
PlsWork

26

ฉันกำลังทำสิ่งนี้โดยใช้สองวิธีต่อไปนี้:

ย้อนกลับสตริงโดยตัวละคร:

public static void main(String[] args) {
    // Using traditional approach
    String result="";
    for(int i=string.length()-1; i>=0; i--) {
        result = result + string.charAt(i);
    }
    System.out.println(result);

    // Using StringBuffer class
    StringBuffer buffer = new StringBuffer(string);
    System.out.println(buffer.reverse());    
}

ย้อนกลับสตริงโดยคำ:

public static void reverseStringByWords(String string) {
    StringBuilder stringBuilder = new StringBuilder();
    String[] words = string.split(" ");

    for (int j = words.length-1; j >= 0; j--) {
        stringBuilder.append(words[j]).append(' ');
    }
    System.out.println("Reverse words: " + stringBuilder);
}

19

ดู Java 6 API ภายใต้ StringBuffer

String s = "sample";
String result = new StringBuffer(s).reverse().toString();

นี้จะดีกว่า StringBuilder
CamHart

@CamHart ไม่มันช้ากว่า แต่อาจจะนิดหน่อย
jcsahnwaldt พูดว่า GoFundMonica

1
มาตรฐานเล็กน้อยที่มีเกือบ 100 ล้านวิธีการโทรแสดงให้เห็นความแตกต่างที่สำคัญระหว่าง StringBuffer และ StringBuilder: stackoverflow.com/questions/355089/แต่ในกรณีนี้มีเพียงสองสาย ( reverse()และtoString()) ดังนั้นความแตกต่างอาจจะไม่ได้ พอประมาณ
jcsahnwaldt พูดว่า GoFundMonica

17

นี่คือตัวอย่างการใช้การเรียกซ้ำ:

public void reverseString() {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    String reverseAlphabet = reverse(alphabet, alphabet.length()-1);
}

String reverse(String stringToReverse, int index){
    if(index == 0){
        return stringToReverse.charAt(0) + "";
    }

    char letter = stringToReverse.charAt(index);
    return letter + reverse(stringToReverse, index-1);
}

2
มีคำตอบที่ดีกว่าอยู่แล้วโดยเฉพาะ @ DanielBrockman หากอัลกอริทึมมีอยู่แล้วในไลบรารีมาตรฐานก็ไม่จำเป็นต้องใช้ฝีมือและสร้างล้อ
Willi Mentzel

14
แนวคิด "คำตอบที่ดีกว่า" เป็นแนวคิด นี่อาจเป็นสิ่งที่ใครบางคนกำลังมองหา
C0D3LIC1OU5

2
OP ระบุไว้แล้วว่า "มีฟังก์ชั่นบางส่วนที่มีอยู่แล้วใน Java ที่ทำเช่นนั้น" ดังนั้นเป้าหมายของเขาคือต้องรู้ว่า "ฟังก์ชั่น" ตัวใดเป็นแบบนี้ เพียงโพสต์คำตอบที่มีน้อยจะทำอย่างไรกับคำถามที่ถามจริงคือไม่รู้สึก หากมีคนถามถึงการใช้งานที่กำหนดเองคำตอบของคุณจะได้รับการพิสูจน์ในกรณีนี้ไม่ใช่
Willi Mentzel

downvote โซลูชันอื่น ๆ ส่วนใหญ่คือ O (n) และสามารถจัดการสตริงที่มีความยาวได้ค่อนข้างมากอันนี้คือ O (n ^ 2) และมีแนวโน้มที่จะล้มเหลวด้วย StackOverflowError สำหรับสตริงที่ยาวกว่า 5,000 chars (บน JDK 8 VM, ค่าเริ่มต้น) .
jcsahnwaldt พูดว่า GoFundMonica

1. โซลูชันอื่นไม่ใช้การเรียกซ้ำและสามารถจัดการสตริงที่ยาวได้ดี ทำไมคุณถึงใช้การสอบถามซ้ำแทนการทำซ้ำสำหรับงานเช่นนี้ มันไม่มีเหตุผล (ยกเว้นว่าคุณมาจากพื้นหลังการเขียนโปรแกรมที่ใช้งานได้ซึ่งมักจะนำไปสู่ปัญหาเมื่อคุณเขียนโค้ดในภาษาที่จำเป็น / OO) 2. การต่อสตริง (สตริงน้อย '+') คือ O (n) คุณต้องใหม่สำหรับ Java มิฉะนั้นคุณจะรู้ว่า
jcsahnwaldt พูดว่า GoFundMonica

12

นี่คือวิธีแก้ปัญหาในระดับต่ำ:

import java.util.Scanner;

public class class1 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String inpStr = in.nextLine();
        System.out.println("Original String :" + inpStr);
        char temp;
        char[] arr = inpStr.toCharArray();
        int len = arr.length;
        for(int i=0; i<(inpStr.length())/2; i++,len--){
            temp = arr[i];
            arr[i] = arr[len-1];
            arr[len-1] = temp;
        }

        System.out.println("Reverse String :" + String.valueOf(arr));
    }
}

12

ฉันพยายามแค่สนุก ๆ โดยใช้ Stack นี่รหัสของฉัน:

public String reverseString(String s) {
    Stack<Character> stack = new Stack<>();
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < s.length(); i++) {
        stack.push(s.charAt(i));
    }
    while (!stack.empty()) {
        sb.append(stack.pop());
    }
    return sb.toString();

}

11

เนื่องจากวิธีการด้านล่าง (โดยใช้XOR ) เพื่อย้อนกลับสตริงไม่มีอยู่ในรายการฉันกำลังแนบวิธีนี้เพื่อย้อนกลับสตริง

ขั้นตอนวิธีการจะขึ้นอยู่กับตาม:

1. (A XOR B) XOR B = A

2. (A XOR B) XOR A = B

ข้อมูลโค้ด:

public class ReverseUsingXOR {
    public static void main(String[] args) {
        String str = "prateek";
        reverseUsingXOR(str.toCharArray());
    }   

    /*Example:
     * str= prateek;
     * str[low]=p;
     * str[high]=k;
     * str[low]=p^k;
     * str[high]=(p^k)^k =p;
     * str[low]=(p^k)^p=k;
     * 
     * */
    public static void reverseUsingXOR(char[] str) {
        int low = 0;
        int high = str.length - 1;

        while (low < high) {
            str[low] = (char) (str[low] ^ str[high]);
            str[high] = (char) (str[low] ^ str[high]);   
            str[low] = (char) (str[low] ^ str[high]);
            low++;
            high--;
        }

        //display reversed string
        for (int i = 0; i < str.length; i++) {
            System.out.print(str[i]);
        }
    }

}

เอาท์พุท:

keetarp


8

ตามที่คนอื่น ๆ ได้ชี้ให้เห็นถึงวิธีที่ต้องการใช้:

new StringBuilder(hi).reverse().toString()

แต่ถ้าคุณต้องการใช้มันด้วยตัวเองฉันกลัวว่าคำตอบที่เหลือมีข้อบกพร่อง

เหตุผลก็คือว่าStringหมายถึงรายการของUnicodeจุดเข้ารหัสในchar[]อาร์เรย์ตามการเข้ารหัสตัวแปรความยาว: UTF-16

นี่หมายความว่าจุดรหัสบางจุดใช้องค์ประกอบเดียวของอาร์เรย์ (หน่วยรหัสหนึ่ง) แต่ส่วนอื่นใช้สองจุดดังนั้นอาจมีคู่อักขระที่ต้องถือว่าเป็นหน่วยเดียว (ตัวแทน "สูง" และ "ต่ำ" ต่อเนื่องกัน) .

public static String reverseString(String s) {
    char[] chars = new char[s.length()];
    boolean twoCharCodepoint = false;
    for (int i = 0; i < s.length(); i++) {
        chars[s.length() - 1 - i] = s.charAt(i);
        if (twoCharCodepoint) {
            swap(chars, s.length() - 1 - i, s.length() - i);
        }
        twoCharCodepoint = !Character.isBmpCodePoint(s.codePointAt(i));
    }
    return new String(chars);
}

private static void swap(char[] array, int i, int j) {
    char temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}

public static void main(String[] args) throws Exception {
    FileOutputStream fos = new FileOutputStream("C:/temp/reverse-string.txt");
    StringBuilder sb = new StringBuilder("Linear B Syllable B008 A: ");
    sb.appendCodePoint(65536); //http://unicode-table.com/es/#10000
    sb.append(".");
    fos.write(sb.toString().getBytes("UTF-16"));
    fos.write("\n".getBytes("UTF-16"));
    fos.write(reverseString(sb.toString()).getBytes("UTF-16"));
}

วิธีแก้ปัญหาที่ดีมีเพียงบางส่วนที่ขาดหายไปในขณะนี้คือการรวมการกำกับของเสียง :-D
René

6

มันง่ายมากในรหัสขั้นต่ำของบรรทัด

public class ReverseString {
    public static void main(String[] args) {
        String s1 = "neelendra";
        for(int i=s1.length()-1;i>=0;i--)
            {
                System.out.print(s1.charAt(i));
            }
    }
}

ฉันกำลังจะเขียนสิ่งนี้ในตอนนี้ .. พบว่าคุณได้เขียนไปแล้ว!
Jency

4

นี้ได้เคล็ดลับสำหรับฉัน

public static void main(String[] args) {

    String text = "abcdefghijklmnopqrstuvwxyz";

    for (int i = (text.length() - 1); i >= 0; i--) {
        System.out.print(text.charAt(i));
    }
}

4

1. การใช้อาร์เรย์อักขระ:

public String reverseString(String inputString) {
    char[] inputStringArray = inputString.toCharArray();
    String reverseString = "";
    for (int i = inputStringArray.length - 1; i >= 0; i--) {
        reverseString += inputStringArray[i];
    }
    return reverseString;
}

2. การใช้ StringBuilder:

public String reverseString(String inputString) {
    StringBuilder stringBuilder = new StringBuilder(inputString);
    stringBuilder = stringBuilder.reverse();
    return stringBuilder.toString();
}

หรือ

return new StringBuilder(inputString).reverse().toString();

3
System.out.print("Please enter your name: ");
String name = keyboard.nextLine();

String reverse = new StringBuffer(name).reverse().toString();
String rev = reverse.toLowerCase();
System.out.println(rev);

ฉันใช้วิธีนี้เพื่อเปลี่ยนชื่อไปข้างหลังและเป็นตัวพิมพ์เล็ก


2
    public String reverse(String s) {

        String reversedString = "";
        for(int i=s.length(); i>0; i--) {
            reversedString += s.charAt(i-1);
        }   

        return reversedString;
    }

อีกครั้งคู่ตัวแทนจะเสียหายด้วยวิธีนี้
HyperNeutrino

@JamesSmith คุณสามารถขยายความกรุณาได้ไหม?
Dom Shahbazi

1
อักขระ Unicode บางตัวประกอบด้วยอักขระสองตัว หากทั้งสองสลับไปมาสตริงจะเสียหาย ข้อผิดพลาดที่มักถูกมองข้ามคือ regex
HyperNeutrino

2

วิธีหนึ่งที่เป็นธรรมชาติในการย้อนกลับStringคือการใช้StringTokenizerและสแต็ก Stackเป็นคลาสที่ใช้สแต็กของวัตถุแบบ Last-in, first-out (LIFO) ที่ใช้งานง่าย

String s = "Hello My name is Sufiyan";

วางไว้ในกองหน้า

Stack<String> myStack = new Stack<>();
StringTokenizer st = new StringTokenizer(s);
while (st.hasMoreTokens()) {
     myStack.push(st.nextToken());
}

พิมพ์ปึกกลับ

System.out.print('"' + s + '"' + " backwards by word is:\n\t\"");
while (!myStack.empty()) {
  System.out.print(myStack.pop());
  System.out.print(' ');
}

System.out.println('"');

2
public class Test {

public static void main(String args[]) {
   StringBuffer buffer = new StringBuffer("Game Plan");
   buffer.reverse();
   System.out.println(buffer);
 }  
}

สิ่งนี้ไม่ตอบคำถาม
Ryan

2

วิธีการแก้ปัญหาทั้งหมดดีเกินไป แต่ที่นี่ฉันทำสตริงย้อนกลับโดยใช้โปรแกรมแบบเรียกซ้ำ

สิ่งนี้มีประโยชน์สำหรับผู้ที่กำลังมองหาวิธีการทำสตริงย้อนกลับแบบเรียกซ้ำ

public class ReversString {

public static void main(String args[]) {
    char s[] = "Dhiral Pandya".toCharArray();
    String r = new String(reverse(0, s));
    System.out.println(r);
}

public static char[] reverse(int i, char source[]) {

    if (source.length / 2 == i) {
        return source;
    }

    char t = source[i];
    source[i] = source[source.length - 1 - i];
    source[source.length - 1 - i] = t;

    i++;
    return reverse(i, source);

}

}

2

ขั้นตอน:

เราสามารถใช้ split () เพื่อแยกสตริงจากนั้นใช้ reverse loop และเพิ่มตัวอักษร


ข้อมูลโค้ด:

class test
{
  public static void main(String args[]) 
  {
      String str = "world";
      String[] split= str.split("");

      String revers = "";
      for (int i = split.length-1; i>=0; i--)
      {
        revers += split[i];
      }
      System.out.printf("%s", revers);
   }  
}

 //output : dlrow


1

สตริงสาธารณะ reverseWords (สตริง s) {

    String reversedWords = "";

    if(s.length()<=0) {
        return reversedWords;
    }else if(s.length() == 1){
        if(s == " "){
            return "";
        }
        return s;
    }

    char arr[] = s.toCharArray();
    int j = arr.length-1;
    while(j >= 0 ){
        if( arr[j] == ' '){
            reversedWords+=arr[j];
        }else{
            String temp="";
            while(j>=0 && arr[j] != ' '){
                temp+=arr[j];
                j--;
            }
            j++;
            temp = reverseWord(temp);
            reversedWords+=temp;
        }
        j--;

    }

    String[] chk = reversedWords.split(" ");

    if(chk == null || chk.length == 0){
        return "";
    }

    return reversedWords;



}

public String reverseWord(String s){

    char[] arr = s.toCharArray();

    for(int i=0,j=arr.length-1;i<=j;i++,j--){
        char tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
    return String.valueOf(arr);

}

1

คุณสามารถลองสิ่งนี้:

public class StringReverse {
    public static void main(String[] args) {
        String str = "Dogs hates cats";
        StringBuffer sb = new StringBuffer(str);
        System.out.println(sb.reverse());
    }
}

1
มีหลายวิธีในการย้อนกลับ string.this เป็นหนึ่งในนั้นโดยใช้คลาส stringbuffer ของ java.accepted คำตอบคือการใช้คลาส diff เพื่อย้อนกลับซึ่งไม่สามารถใช้ได้ใน JDK รุ่นเก่า
Anurag Goel

1
public void reverString(){
System.out.println("Enter value");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 try{

  String str=br.readLine();
  char[] charArray=str.toCharArray();
  for(int i=charArray.length-1; i>=0; i--){
   System.out.println(charArray[i]);
  }
  }
   catch(IOException ex){
  }

1

recursion:

 public String stringReverse(String string) {
    if (string == null || string.length() == 0) {
        return string;
    }
    return stringReverse(string.substring(1)) + string.charAt(0);
 }

1

แค่เล่น ๆ..:)

Algorithm (str,len)
char reversedStr[] =new reversedStr[len]

เข้าไปที่ i จาก 0 ถึง len / 2 แล้ว

reversedStr[i]=str[len-1-i]  
reversedStr[len-1=i]=str[i]
return reversedStr;

ความซับซ้อนของเวลา: O (n)

ความซับซ้อนของอวกาศ: O (n)

public class Reverse {
    static char reversedStr[];

    public static void main(String[] args) {
        System.out.println(reversestr("jatin"));
    }


    private static String reversestr(String str) {
        int strlen = str.length();
        reversedStr = new char[strlen];

        for (int i = 0; i <= strlen / 2; i++) {
            reversedStr[i] = str.charAt(strlen - 1 - i);
            reversedStr[strlen - 1 - i] = str.charAt(i);

        }
        return new String(reversedStr);
    }

}

1
public static String revString(String str){
    char[] revCharArr = str.toCharArray();
    for (int i=0; i< str.length()/2; i++){
        char f = revCharArr[i];
        char l = revCharArr[str.length()-i-1];
        revCharArr[i] = l;
        revCharArr[str.length()-i-1] = f;
    }
    String revStr = new String(revCharArr);
    return revStr;
}

1
    public static void reverseString(String s){
        System.out.println("---------");
        for(int i=s.length()-1; i>=0;i--){
            System.out.print(s.charAt(i));    
        }
        System.out.println(); 

    }

นี่เป็นเอาต์พุตอักขระของสตริงหนึ่งต่อหนึ่ง และมันไม่สามารถใช้ที่ใดก็ได้ในโปรแกรม มันจะดีกว่ามากในการสร้างตัวแปร String แทรก "char" ทีละตัวในสตริงจากนั้นส่งคืนสตริง
Zombie Chibi XD

1
    //Solution #1 -- Using array and charAt()
    String name = "reverse"; //String to reverse
    Character[] nameChar =  new Character[name.length()]; // Declaring a character array with length as length of the String which you want to reverse.
    for(int i=0;i<name.length();i++)// this will loop you through the String
    nameChar[i]=name.charAt(name.length()-1-i);// Using built in charAt() we can fetch the character at a given index. 
    for(char nam:nameChar)// Just to print the above nameChar character Array using an enhanced for loop
    System.out.print(nam);


    //Solution #2 - Using StringBuffer and reverse ().
    StringBuffer reverseString = new StringBuffer("reverse");
    System.out.println(reverseString.reverse()); //reverse () Causes the character sequence to be replaced by the reverse of the sequence.

@ Dharman ขอบคุณสำหรับการตอบสนอง เพิ่มคำอธิบายและอีกหนึ่งโซลูชัน
abhi

0
package logicprogram;
import java.io.*;

public class Strinrevers {
public static void main(String args[])throws IOException
{
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    System.out.println("enter data");
    String data=br.readLine();
    System.out.println(data);
    String str="";
    char cha[]=data.toCharArray();

    int l=data.length();
    int k=l-1;
    System.out.println(l);


    for(int i=0;k>=i;k--)
    {

        str+=cha[k];


    }
    //String text=String.valueOf(ch);
    System.out.println(str);

}

}

0
import java.util.Scanner;

public class Test {

    public static void main(String[] args){
        Scanner input = new Scanner (System.in);
        String word = input.next();
        String reverse = "";
        for(int i=word.length()-1; i>=0; i--)
            reverse += word.charAt(i);
        System.out.println(reverse);        
    }
}

ถ้าคุณต้องการใช้การวนรอบแบบง่าย ๆ !

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.