कैसे मैं एक String
में दो पात्रों स्वैप कर सकते हैं? उदाहरण के लिए, "abcde"
"bacde"
बन जाएगा।जावा में स्ट्रिंग वर्णों को कैसे स्वैप करें?
उत्तर
String
के बाद से वस्तुओं, अपरिवर्तनीय हैं toCharArray
के माध्यम से एक char[]
के लिए जा रहा, वर्ण की अदला-बदली, तो String(char[])
निर्माता काम करेंगे के माध्यम से char[]
से एक नया String
बनाने: आप आसानी से के साथ एक दूसरे स्ट्रिंग बना सकते हैं।
निम्न उदाहरण स्वैप पहले और दूसरे वर्ण:
String originalString = "abcde";
char[] c = originalString.toCharArray();
// Replace with a "swap" function, if desired:
char temp = c[0];
c[0] = c[1];
c[1] = temp;
String swappedString = new String(c);
System.out.println(originalString);
System.out.println(swappedString);
परिणाम:
abcde
bacde
अच्छा।निश्चित नहीं है कि मैं एक चार सरणी के बारे में सोचने के बजाय सीधे स्ट्रिंगबिल्डर क्यों गया। –
@ जोन स्कीट: मेरा पहला विचार वास्तव में एक नया स्ट्रिंग बनाने के लिए था, लेकिन चूंकि आवश्यकताएं एक स्वैप थीं, इसलिए मैंने सोचा कि चार सरणी आसान होगी। :) – coobird
Arrays, इतनी पुरानी शैली !!! – jjnguy
String.toCharArray() आप इस स्ट्रिंग का प्रतिनिधित्व पात्रों में से एक सरणी दे देंगे।
आप मूल स्ट्रिंग को बदलने के बिना इसे बदल सकते हैं (आपको आवश्यक वर्णों को स्वैप करें), और फिर String(char[]) का उपयोग करके एक नई स्ट्रिंग बनाएं।
ध्यान दें कि तार अपरिवर्तनीय हैं, इसलिए आपको एक नई स्ट्रिंग ऑब्जेक्ट बनाना होगा।
यह कई बार उत्तर दिया गया है, लेकिन यहाँ सिर्फ मनोरंजन के लिए एक और है :-)
public class Tmp {
public static void main(String[] args) {
System.out.println(swapChars("abcde", 0, 1));
}
private static String swapChars(String str, int lIdx, int rIdx) {
StringBuilder sb = new StringBuilder(str);
char l = sb.charAt(lIdx), r = sb.charAt(rIdx);
sb.setCharAt(lIdx, r);
sb.setCharAt(rIdx, l);
return sb.toString();
}
}
यहाँ रिकर्सिवली जावा वर्ण की अदला-बदली .. आप http://java2novice.com/java-interview-programs/string-reverse-recursive/
पर पूर्ण नमूना कोड प्राप्त कर सकते हैं के लिए जावा नमूना कोड हैpublic String reverseString(String str){
if(str.length() == 1){
return str;
} else {
reverse += str.charAt(str.length()-1)
+reverseString(str.substring(0,str.length()-1));
return reverse;
}
}
स्ट्रिंग को रिवर्स करना एक ही चीज़ नहीं है जैसा कि दो अक्षर स्वैप कर रहा है ... –
import java.io.*;
class swaping
{
public static void main(String args[])
{
String name="premkumarg";
int len=name.length();
char[] c = name.toCharArray();
for(int i=0;i<len-1;i=i+2)
{
char temp= c[i];
c[i]=c[i+1];
c[i+1]=temp;
}
System.out.println("Swapping string is: ");
System.out.println(c);
}
}
StringBuilder sb = new StringBuilder("abcde");
sb.setCharAt(0, 'b');
sb.setCharAt(1, 'a');
String newString = sb.toString();
static String string_swap(String str, int x, int y)
{
if(x < 0 || x >= str.length() || y < 0 || y >= str.length())
return "Invalid index";
char arr[] = str.toCharArray();
char tmp = arr[x];
arr[x] = arr[y];
arr[y] = tmp;
return new String(arr);
}
यहाँ एक StringBuilder
के साथ एक समाधान है। यह एक पैडिंग चरित्र के साथ असमान स्ट्रिंग लंबाई के साथ तारों के परिणामस्वरूप पैडिंग का समर्थन करता है। जैसा कि आपने अनुमान लगाया है कि यह विधि हेक्साडेसिमल-निबल-स्वैपिंग के लिए बनाई गई है।
/**
* Swaps every character at position i with the character at position i + 1 in the given
* string.
*/
public static String swapCharacters(final String value, final boolean padding)
{
if (value == null)
{
return null;
}
final StringBuilder stringBuilder = new StringBuilder();
int posA = 0;
int posB = 1;
final char padChar = 'F';
// swap characters
while (posA < value.length() && posB < value.length())
{
stringBuilder.append(value.charAt(posB)).append(value.charAt(posA));
posA += 2;
posB += 2;
}
// if resulting string is still smaller than original string we missed the last
// character
if (stringBuilder.length() < value.length())
{
stringBuilder.append(value.charAt(posA));
}
// add the padding character for uneven strings
if (padding && value.length() % 2 != 0)
{
stringBuilder.append(padChar);
}
return stringBuilder.toString();
}
public static String shuffle(String s) {
List<String> letters = Arrays.asList(s.split(""));
Collections.shuffle(letters);
StringBuilder t = new StringBuilder(s.length());
for (String k : letters) {
t.append(k);
}
return t.toString();
}
मुझे लगता है कि यह मदद करनी चाहिए।
import java.util.*;
public class StringSwap{
public static void main(String ar[]){
Scanner in = new Scanner(System.in);
String s = in.next();
System.out.println(new StringBuffer(s.substring(0,2)).reverse().toString().concat(s.substring(2)));
}
}
वापसी str.charAt (1) + str.charAt (0) str.substring + (2); // स्ट्रिंग
कृपया कोड की एक पंक्ति न केवल कुछ स्पष्टीकरण जोड़ें? –
यह एक पूरी तरह से गलत परिणाम पैदा करता है। संकेत: समान प्राथमिकता के कम्प्यूटेशनल ऑपरेटरों को जावा में सहयोगी छोड़ दिया गया है, जैसा कि लगभग सभी प्रोग्रामिंग भाषाओं में है। –
// आप यह कर सकते हैं ... संकेत: उस कोड का काम स्ट्रिंग की लंबाई 2 से बड़ा है >>>>>>>> >>>>>>>>>>>>>>> पैकेज को.pkgtry; आयात java.util.Scanner; सार्वजनिक वर्ग ToTry { सार्वजनिक स्थैतिक स्ट्रिंग स्वैप (स्ट्रिंग str) { स्ट्रिंग सेवानिवृत्त = "" + str.charAt (1) + str.charAt (0) (2) str.substring +; रिटर्न रिट; } सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क) { स्ट्रिंग एस = स्वैप ("abcg"); System.out.println (ओं); } } –
- 1. जावा स्ट्रिंग में वर्णों को कैसे बदलें?
- 2. जावा: स्ट्रिंग को कई वर्णों से कैसे विभाजित करें?
- 3. स्ट्रिंग में वर्णों को कैसे घुमाएं
- 4. स्ट्रिंग से अमान्य वर्णों को कैसे निकालें?
- 5. एनएसएमयूटेबलएरे में मूल्यों को कैसे स्वैप करें?
- 6. तुर्की वर्णों को अंग्रेजी वर्णों में एक स्ट्रिंग में कैसे परिवर्तित करें?
- 7. जावा में स्ट्रिंग को कैसे कंप्रेस करें?
- 8. स्ट्रिंग के अंत से कुछ वर्णों को कैसे प्रतिस्थापित करें?
- 9. विभिन्न वर्णों के बीच स्ट्रिंग को कैसे विभाजित करें
- 10. स्ट्रिंग से सभी वर्णों को कैसे हटाएं
- 11. जावा स्ट्रिंग से लाइन वर्णों के अंत को हटा दें
- 12. स्ट्रिंग के बीच में सफेद स्पेस वर्णों को कैसे निकालें?
- 13. स्ट्रिंग में वर्णों को प्रतिस्थापित करना
- 14. जावा 0 स्ट्रिंग से विशिष्ट वर्णों को हटाएं
- 15. वर्णों में PHP ब्रेक स्ट्रिंग
- 16. मैं स्ट्रिंग वर्णों को सूची में कैसे परिवर्तित करूं?
- 17. sqlite3 डेटाबेस में स्ट्रिंग से वर्णों को कैसे निकालें?
- 18. जावा में असली स्ट्रिंग ऊंचाई कैसे प्राप्त करें?
- 19. जावा: जावा ऑब्जेक्ट को जावा ऑब्जेक्ट में जावा में स्ट्रिंग ऑब्जेक्ट में कैसे परिवर्तित करें?
- 20. यूनिक्स में फ़ाइल नामों को कैसे स्वैप करें?
- 21. जावास्क्रिप्ट में HTML तत्वों को स्वैप कैसे करें?
- 22. जावास्क्रिप्ट में डोम बच्चे नोड्स को कैसे स्वैप करें?
- 23. एंड्रॉइड में कैनवास पर छवियों को स्वैप कैसे करें?
- 24. जावा में वर्णों की तुलना
- 25. जावा में स्ट्रिंग तिथि को टाइमस्टैंप में कैसे परिवर्तित करें?
- 26. जावा में स्ट्रिंग प्रारूप में दिनांक को कैसे क्रमबद्ध करें?
- 27. जावा में एक स्ट्रिंग को सॉर्ट करें
- 28. जावा स्ट्रिंग में उद्धरण कैसे दर्ज करें?
- 29. जावा में स्ट्रिंग डिफ कैसे करें?
- 30. जावा में एक यूटीएफ -8 स्ट्रिंग से 4 (+) - बाइट वर्णों को प्रतिस्थापित/निकालने के लिए कैसे?
में पहले दो वर्णों को स्वैप करेगा, यह माना जाता है कि आप समय से पहले वर्णित वर्णों को जानेंगे, जो ज्यादातर मामलों में उपयोग करने योग्य समाधान की तरह प्रतीत नहीं होते हैं। –