উত্তর:
toCharArray
দ্বারা অনুসরণ Arrays.sort
স্ট্রিং কন্সট্রাকটর কল দ্বারা অনুসৃত:
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
String original = "edcba";
char[] chars = original.toCharArray();
Arrays.sort(chars);
String sorted = new String(chars);
System.out.println(sorted);
}
}
সম্পাদনা: টেকলাইনটি হিসাবে উল্লেখ করা হয়েছে যে স্ট্রিংটিতে সরোগেট জোড় বা প্রকৃত সংমিশ্রিত অক্ষর (অ্যাকসেন্ট + ই পৃথক অক্ষর) ইত্যাদি রয়েছে তবে এটি ব্যর্থ হবে that সেই সময়ে এটি আরও শক্ত হয়ে যায় ... আশা করি আপনার এটির দরকার নেই :) তদতিরিক্ত, এটি কেবল মূলধন, অ্যাকসেন্ট বা অন্য কোনও কিছু আমলে না নিয়ে অর্ডিনাল দ্বারা অর্ডার করছে।
sorted
ইতিমধ্যে একটি String
... আপনি toString()
এটি করতে কল করার কি আশা করবেন?
char[] c = s.toCharArray(); Arrays.sort(c); String sorted = new String(c);
না কোনও অন্তর্নির্মিত স্ট্রিং পদ্ধতি নেই। আপনি এটিকে একটি চর অ্যারে রূপান্তর করতে পারেন, অ্যারে.সোর্ট ব্যবহার করে এটি বাছাই করতে পারেন এবং এটিকে আবার স্ট্রিংয়ে রূপান্তর করতে পারেন।
String test= "edcba";
char[] ar = test.toCharArray();
Arrays.sort(ar);
String sorted = String.valueOf(ar);
বা, যখন আপনি স্থানীয়-নির্দিষ্ট স্টাফগুলির মতো বড় হাতের অক্ষর এবং উচ্চারণযুক্ত অক্ষরগুলির সাথে সঠিকভাবে ডিল করতে চান:
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Locale;
public class Test
{
public static void main(String[] args)
{
Collator collator = Collator.getInstance(new Locale("fr", "FR"));
String original = "éDedCBcbAàa";
String[] split = original.split("");
Arrays.sort(split, collator);
String sorted = "";
for (int i = 0; i < split.length; i++)
{
sorted += split[i];
}
System.out.println(sorted); // "aAàbBcCdDeé"
}
}
জাভা 8 এ এটি করা যেতে পারে:
String s = "edcba".chars()
.sorted()
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
একটি সামান্য সংক্ষিপ্ত বিকল্প যা দৈর্ঘ্যের একের স্ট্রিমের স্ট্রিমের সাথে কাজ করে (অরসেটেড স্ট্রিংয়ের প্রতিটি অক্ষর স্ট্রিমের স্ট্রিংয়ে রূপান্তরিত হয়):
String sorted =
Stream.of("edcba".split(""))
.sorted()
.collect(Collectors.joining());
অক্ষরের অ্যারেতে রূপান্তর → সাজান → স্ট্রিংয়ে ফিরে রূপান্তর করুন :
String s = "edcba";
char[] c = s.toCharArray(); // convert to array of chars
java.util.Arrays.sort(c); // sort
String newString = new String(c); // convert back to String
System.out.println(newString); // "abcde"
বাছাই অ্যারে.সোর্ট পদ্ধতিটি ব্যবহার না করেই আরও কাঁচা পন্থা। এটি সন্নিবেশ সাজানোর ব্যবহার করছে।
public static void main(String[] args){
String wordSt="watch";
char[] word=wordSt.toCharArray();
for(int i=0;i<(word.length-1);i++){
for(int j=i+1;j>0;j--){
if(word[j]<word[j-1]){
char temp=word[j-1];
word[j-1]=word[j];
word[j]=temp;
}
}
}
wordSt=String.valueOf(word);
System.out.println(wordSt);
}
String a ="dgfa";
char [] c = a.toCharArray();
Arrays.sort(c);
return new String(c);
দ্রষ্টব্য যে এটি প্রত্যাশার মতো কাজ করবে না যদি এটি মিশ্র কেস স্ট্রিং হয় (এটি ছোট হাতের আগে বড় হাতের অক্ষর রাখবে)। আপনি এটি পরিবর্তন করতে বাছাই পদ্ধতিতে একটি তুলনামূলক পাস করতে পারেন।
পদ্ধতি:
টুকিটাকি সংকেতলিপি:
String input = "world";
char[] arr = input.toCharArray();
Arrays.sort(arr);
String sorted = new String(arr);
System.out.println(sorted);
প্রশ্ন: জাভাতে একটি স্ট্রিং সাজান
public class SortAStringInJava {
public static void main(String[] args) {
String str = "Protijayi";
// Method 1
str = str.chars() // IntStream
.sorted().collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString();
System.out.println(str);
// Method 2
str = Stream.of(str.split(" ")).sorted().collect(Collectors.joining());
System.out.println(str);
}
}
public static void main(String[] args) {
String str = "helloword";
char[] arr;
List<Character> l = new ArrayList<Character>();
for (int i = 0; i < str.length(); i++) {
arr = str.toCharArray();
l.add(arr[i]);
}
Collections.sort(l);
str = l.toString();
System.out.println(str);
str = str.replaceAll("\\[", "").replaceAll("\\]", "")
.replaceAll("[,]", "");
System.out.println(str);
}
জাভাতে সংগ্রহগুলি ব্যবহার না করে:
import java.util.Scanner;
public class SortingaString {
public static String Sort(String s1)
{
char ch[]=s1.toCharArray();
String res=" ";
for(int i=0; i<ch.length ; i++)
{
for(int j=i+1;j<ch.length; j++)
{
if(ch[i]>=ch[j])
{
char m=ch[i];
ch[i]=ch[j];
ch[j]=m;
}
}
res=res+ch[i];
}
return res;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("enter the string");
String s1=sc.next();
String ans=Sort( s1);
System.out.println("after sorting=="+ans);
}
}
আউটপুট:
স্ট্রিং == প্রবেশ করান
শ্রেণীবিভাজন
বাছাই করার পরে == জিনোস্ট