জাভাতে একটি স্ট্রিং বিপরীত


467

আমি "Hello World"নামের একটি স্ট্রিং ভেরিয়েবল রেখেছি hi

আমার এটি মুদ্রণ করা প্রয়োজন, কিন্তু বিপরীত।

কিভাবে আমি এটি করতে পারব? আমি বুঝতে পারি যে জাভাতে ইতিমধ্যে অন্তর্নির্মিত কোনও ফাংশন রয়েছে যা এটি করে।

সম্পর্কিত: জাভা সহ "হ্যালো ওয়ার্ল্ড" স্ট্রিংয়ের প্রতিটি স্বতন্ত্র শব্দ বিপরীত করুন


7
@ জেআরএল সত্যই স্ট্রিং ih = "dlroW leleH" হওয়া উচিত; System.out.println (IH);
ম্যাথু ফারওয়েল

4
আমি আশা করি আমি আমার নিকটতম ভোটটি প্রত্যাহার করতে পারি (সদৃশ হিসাবে) আমি অন্য প্রশ্নটি পুনরায় পড়লাম এবং বুঝতে পেরেছি যে এটি এর চেয়ে সূক্ষ্মভাবে পৃথক। তবে, এই প্রশ্নটি এখনও পুরো সাইট জুড়ে বহুবার নকল করা হয়েছে। সম্ভবত এটির একটি ডুপিকে চিহ্নিত করার জন্য একটি আলাদা প্রশ্ন সন্ধান করা উচিত।
রব হুশকা

আপনি স্ট্রিংবিল্ডার ক্লাসের বিপরীত () ফাংশন, টুচ্যারআরে () পদ্ধতি, অক্ষর অদলবদল এবং আরও অনেক কিছু ব্যবহার করতে পারেন। আরও উদাহরণের জন্য এই রিসোর্সটি
শিব

স্ট্রিংবিল্ডার.রেভারস () আরও পঠনযোগ্য এবং ইলজেন্ট সমাধান।
লোকেশ

উত্তর:


980

আপনি এটি ব্যবহার করতে পারেন:

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

বা, JDK 1.5 এর পূর্ববর্তী সংস্করণগুলির java.util.StringBufferপরিবর্তে ব্যবহার করুন StringBuilder- তাদের একই API রয়েছে। StringBuilderআজকের দিনে যখন কোনও সহানুভূতির উদ্বেগ নেই তখন এটিকে চিহ্নিত করার জন্য মন্তব্যকারীদের ধন্যবাদ জানাই ।


13
"আজকাল স্ট্রিংবিল্ডারকেই প্রাধান্য দেওয়া হয় বলে চিহ্নিত করার জন্য মন্তব্যকারীদের ধন্যবাদ?" থ্রেড-নিরাপত্তা যদি উদ্বেগজনক হয় তবে স্ট্রিংবাফার একটি স্পষ্ট বক্তব্য আছে। অন্যথায়, স্ট্রিংবিল্ডার ব্যবহার করা যেতে পারে। স্ট্রিংবুডার স্ট্রিংবুফারের প্রতিস্থাপন নয়।
ha9u63ar

15
@ ha9u63ar স্থানীয় থ্রোওয়ে সমঝোতার সাথে এই দৃশ্যের জন্য StringBuilderকোনও উদ্বেগ নয় (এবং আমি মনে করি এটি সে বোঝাতে চেয়েছিল)।
xehpuk

2
সংক্ষেপে javatPoint.com/… উভয়ের মধ্যে সঠিক পার্থক্যটি জানতে এখানে লিঙ্কটি দেওয়া হয়েছে : স্ট্রিংবুফারের চেয়ে স্ট্রিংবুডার আরও দক্ষ । এটি থ্রেড নিরাপদ নয় অর্থাত্ একাধিক থ্রেড একই সাথে স্ট্রিংবিল্ডারের পদ্ধতিতে কল করতে পারে।
বিষ্ণু নারং

এটি বিএমপির বাইরে ইউনিকোড অক্ষরের পক্ষে কাজ করবে না যতক্ষণ না অক্ষর একত্রিত করার জন্য।
নও

2
@ ড্যানিয়েল ব্রোকম্যান, আপনার সুন্দর এবং সংক্ষিপ্ত উত্তরের জন্য আপনাকে ধন্যবাদ। এখানে ওপি বলেছেন, আমার কাছে হাই নামক একটি স্ট্রিং ভেরিয়েবল "হ্যালো ওয়ার্ল্ড" আছে । তার মানে String hi = "Hello World";। সুতরাং আমি মনে করি আপনার উত্তরে আশেপাশে কোনও দ্বিগুণ উক্তি থাকা উচিত নয়hi । আমার অর্থ এটির মতো হওয়া উচিতnew StringBuilder(hi).reverse().toString()
মোঃ আবু নাফী ইবনা জাহিদ

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

যদিও শুধু একটি নোট। এটি "অক্ষর" এর জন্য মারাত্মকভাবে ব্যর্থ হবে যা দুটি বাইট দখল করে।
মিনাস মিনা

প্রকৃতপক্ষে, এটি বেশিরভাগ অক্ষরগুলির জন্য সূক্ষ্মভাবে কাজ করে যা 2 বাইট দখল করে। এটি আসলে যা ব্যর্থ হয় তা হ'ল ইউনিকোড কোডপয়েন্টস যা 2 x 16 বিট কোডুনিট (ইউটিএফ -16 এ) দখল করে।
স্টিফেন সি

এটি ভাল সমাধান, তবে যদি আমরা ন্যূনতম জটিলতার সাথে স্ট্রিংয়ে 10 কে অক্ষর রাখি তবে আমরা এটির জন্যও করতে পারি।
যতিন্দর কুমার

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+)। একটি বর্ধন - স্ট্রিংবুডার (যেহেতু জাভা 5) স্ট্রিংবফারের চেয়ে দ্রুত হবে। শুভেচ্ছা।
মিশা łরাজের

31
এটি সাধারণ ক্ষেত্রে কাজ করবে না কারণ ইউনিকোডের কিছু "অক্ষর" একটি সারোগেট জুটি অর্থাৎ দুটি জাভা চর দ্বারা প্রতিনিধিত্ব করা হয় এবং এই সমাধানের ফলে এই জুটিটি ভুল ক্রমে থাকে। স্ট্রিংবিল্ডারের বিপরীত পদ্ধতিটি জাভাক ডক অনুযায়ী ঠিক হওয়া উচিত: ডকস.অরাকল.com
/

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

7
এর জটিলতা কী? ও (এন) বা আরও বেশি? এন স্ট্রিংয়ের দৈর্ঘ্যের সমান।
মুকিত09

ও (এন) যেহেতু এটি স্ট্রিংয়ের অক্ষরের মাধ্যমে অন্তত একবার পুনরাবৃত্তি করতে হবে।
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());    
}

WORDS দ্বারা বিপরীত স্ট্রিং:

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

স্ট্রিংবুফারের অধীনে জাভা 6 এপিআই দেখুন

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

এটি স্ট্রিংবিল্ডারের চেয়ে ভাল?
ক্যামহার্ট

@ ক্যামহার্ট নং, এটি ধীর, তবে সম্ভবত কেবল সামান্য কিছুটা।
জ্যাকসাহ্নওয়াল্ড্ট বলেছেন GoFundMonica

1
প্রায় 100 মিলিয়ন পদ্ধতি কলের মাধ্যমে একটু বেঞ্চমার্ক StringBuffer এবং StringBuilder মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য দেখিয়েছেন: stackoverflow.com/questions/355089/... কিন্তু এই ক্ষেত্রে, সেখানে মাত্র দুটি কল হয় ( reverse()এবং toString()), তাহলে পার্থক্য সম্ভবত হবে না পরিমাপযোগ্য।
জ্যাকসাহ্নওয়াল্ড্ট 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
ইতিমধ্যে আরও ভাল উত্তর রয়েছে, বিশেষত @ ড্যানিয়েলব্রকম্যানের। যদি কোনও স্ট্যান্ডার্ড লাইব্রেরিতে একটি অ্যালগরিদম ইতিমধ্যে বিদ্যমান থাকে তবে এটি হ্যান্ডক্রাফ্ট এবং চক্রটি পুনরায় উদ্ভাবন করার দরকার নেই।
উইল মেন্টজেল

14
একটি "আরও ভাল উত্তর" ধারণাটি বিষয়গত। কেউ ঠিক যা খুঁজছেন তা হতে পারে।
C0D3LIC1OU5

2
ওপি ইতিমধ্যে জানিয়েছে যে "জাভাতে ইতিমধ্যে অন্তর্নির্মিত কোনও ধরণের ফাংশন রয়েছে যা এটি করে" তাই তার লক্ষ্যটি ছিল ঠিক কোনটি "ফাংশন" এটি তা জানা ছিল। জিজ্ঞাসা করা আসল প্রশ্নের সাথে কেবলমাত্র একটি উত্তর পোস্ট করা অজ্ঞান has যদি কেউ কাস্টম প্রয়োগের জন্য জিজ্ঞাসা করে তবে আপনার উত্তর ন্যায়সঙ্গত হবে, এক্ষেত্রে তা নয়।
উইল মেন্টজেল

Downvote। বেশিরভাগ অন্যান্য সমাধানগুলি হ'ল (এন) এবং যে কোনও দৈর্ঘ্যের স্ট্রিংগুলি পরিচালনা করতে পারে, এটি হ'ল ও (এন ^ 2) এবং প্রায় 5000 টি অক্ষরের চেয়ে বেশি স্ট্রিংগুলির জন্য স্ট্যাকওভারফ্লো এরর দিয়ে ক্র্যাশ হয় (জেডিকে 8 ভিএম, ডিফল্ট কনফিগারেশনে) ।
জ্যাকসাহনওয়াল্ড্ট GoFundMonica

1. অন্যান্য সমাধানগুলি পুনরাবৃত্তি ব্যবহার করে না এবং লম্বা স্ট্রিংগুলি ঠিকঠাকভাবে পরিচালনা করতে পারে। আপনি কেন এই জাতীয় কোনও কাজের জন্য পুনরাবৃত্তির পরিবর্তে পুনরাবৃত্তি ব্যবহার করবেন? এটা আমার বুঝে আসেনা. (যদি না আপনি কোনও কার্যনির্বাহী প্রোগ্রামিং ব্যাকগ্রাউন্ড থেকে না এসে থাকেন যা আপনি যখন একটি অত্যাবশ্যক / ওও ভাষায় কোড লিখছেন তখন প্রায়শই সমস্যার সৃষ্টি করে St আপনার অবশ্যই জাভাতে নতুন হওয়া উচিত, অন্যথায় আপনি এটি জানতেন।
জ্যাকসাহ্নওয়াল্ড্ট 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

আমি চেষ্টা করেছি, কেবল মজাদার জন্য, একটি স্ট্যাক ব্যবহার করে। এখানে আমার কোড:

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

যেহেতু একটি স্ট্রিং বিপরীতে নীচের পদ্ধতি ( এক্সওআর ব্যবহার করে ) তালিকাভুক্ত করা হয়নি, তাই আমি একটি স্ট্রিং বিপরীতে এই পদ্ধতিটি সংযুক্ত করছি।

অ্যালগরিদম উপর ভিত্তি করে:

1. (একটি এক্সওর বি) এক্সওর বি = এ

২. (একটি এক্সওর বি) এক্সওআর এ = বি

টুকিটাকি সংকেতলিপি:

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একটি তালিকা প্রতিনিধিত্ব করে যা ভেরিয়েবল-দৈর্ঘ্যের এনকোডিং অনুসারে একটি অ্যারেতে এনকোড করা হয়েছে : ইউটিএফ -16char[]

এর অর্থ কিছু কোড পয়েন্ট অ্যারের একক উপাদান ব্যবহার করে (একটি কোড ইউনিট) তবে অন্যরা এর মধ্যে দুটি ব্যবহার করে, সুতরাং এমন অক্ষরের জোড় থাকতে পারে যা অবশ্যই একক ইউনিট হিসাবে বিবেচিত হবে (পরপর "উচ্চ" এবং "নিম্ন" সারোগেটস) ।

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

ভাল সমাধান, শুধুমাত্র অংশ অনুপস্থিত এখন ডায়ারট্রিটিকস সমন্বয় পরিচালনা করছে :
রেনি

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

আমি এখন এটি লিখতে যাচ্ছি .. পাওয়া গেছে আপনি ইতিমধ্যে এটি লিখেছেন!
জেন্সি

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

২. স্ট্রিংবিল্ডার ব্যবহার:

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

আবার সারোগেট জোড়গুলি এভাবে দুর্নীতিগ্রস্থ হয়ে উঠবে।
হাইপারনিউটারিনো

@ জেমস্মিথ আপনি কি দয়া করে এটি প্রসারিত করতে পারেন?
ডোম শাহবাজি

1
কিছু ইউনিকোড অক্ষর দুটি অক্ষর নিয়ে গঠিত; যদি এই দুটি ঘুরিয়ে ফেলা হয় তবে স্ট্রিংটি নষ্ট হয়ে যায়। এছাড়াও, একটি সাধারণভাবে অবহেলিত ত্রুটি হ'ল রেজেক্স।
হাইপারনিউটারিনো

2

বিপরীত করার একটি প্রাকৃতিক উপায় Stringহ'ল একটি StringTokenizerএবং স্ট্যাক ব্যবহার করা । Stackহ'ল এমন একটি শ্রেণি যা অবজেক্টগুলির সর্বশেষ-মধ্যে, প্রথম-আউট (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 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

পদ্ধতি:

স্ট্রিংকে বিভক্ত করতে আমরা স্প্লিট () ব্যবহার করতে পারি hen


টুকিটাকি সংকেতলিপি:

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

পাবলিক স্ট্রিং রিভার্সওয়ার্ডস (স্ট্রিং) {

    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
একটি স্ট্রিংকে বিপরীত করার জন্য অনেকগুলি পদ্ধতি রয়েছে them এটির মধ্যে একটি হল জাভা.এসেপ্টেড উত্তরের স্ট্রিংবুফার ক্লাস ব্যবহার করে বিপরীতমুখীকরণের জন্য ডিফ ক্লাস ব্যবহার করা হয় যা জেডিকে পুরানো সংস্করণে পাওয়া যায় না।
অনুরাগ গোয়েল

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

পুনরাবৃত্তির:

 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]

আমি 0 থেকে লেন / 2 এবং তার পরে ট্র্যাভ করে

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

সময় জটিলতা: ও (এন)

স্থান জটিলতা: ও (এন)

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

    }

এটি স্ট্রিংয়ের একের পর এক আউটপুট দেয়। এবং এটি প্রোগ্রামের কোথাও ব্যবহার করা যায় না। স্ট্রিং ভেরিয়েবল তৈরি করা আরও ভাল, স্ট্রিংয়ে একে একে "চর" ,োকান, তারপরে স্ট্রিংটি ফিরিয়ে দিন।
বোকচন্দর Chibi এক্সডি

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.

@ ধর্মন প্রতিক্রিয়া জন্য ধন্যবাদ। যুক্ত ব্যাখ্যা এবং আরও একটি সমাধান।
अभि

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.