मैं कहीं भी एक जवाब नहीं मिला .. तो मेरे पास है: String s = "How are you"
? कैसे कर सकते हैं मैं दो तार में इस विभाजित है, इसलिए पहली स्ट्रिंग 0..s.length()/2
और s.length()/2+1..s.length()
से 2 स्ट्रिंग से युक्त?कैसे जावा
धन्यवाद!
मैं कहीं भी एक जवाब नहीं मिला .. तो मेरे पास है: String s = "How are you"
? कैसे कर सकते हैं मैं दो तार में इस विभाजित है, इसलिए पहली स्ट्रिंग 0..s.length()/2
और s.length()/2+1..s.length()
से 2 स्ट्रिंग से युक्त?कैसे जावा
धन्यवाद!
आप उपयोग कर सकते हैं 'सबस्ट्रिंग (प्रारंभ, समाप्ति)', लेकिन निश्चित रूप से जांच करता है, तो स्ट्रिंग नहीं अशक्त से पहले है:
String first = s.substring(0, s.length()/2);
String second = s.substring(s.length()/2);
और आप के साथ स्ट्रिंग उम्मीद कर रहे हैं अजीब लंबाई? इस मामले में आपको इस मामले को सही तरीके से संभालने के लिए तर्क जोड़ना होगा।
लेकिन यह भी काम नहीं करता है ... यह देता है '' और '" आप ई "' – aioobe
@Torres, नहीं, कि अनदेखा कर देते हैं मध्यम चरित्र "आप फिर से"। (और खाली स्ट्रिंग पर अपवाद फेंक दें) – aioobe
अलॉइस का जवाब गलत है और Torres भी गलत है। सही उत्तर है 'स्ट्रिंग एस = "आप कैसे हैं?"; स्ट्रिंग पहले = s.substring (0, एस। लम्बाई()/2); स्ट्रिंग दूसरा = s.substring (एस। लम्बाई()/2); ' – Ralph
उपयोग String.substring(int), और String.substring(int, int) विधि।
int cutPos = s.length()/2;
String s1 = s.substring(0, cutPos);
String s2 = s.substring(cutPos, s.length()); //which is essentially the same as
//String s2 = s.substring(cutPos);
आपने गलती की है: substring (startPosition)। इसलिए (cutPos) नहीं-स्ट्रिंग के रूप में ही (0, cutPos) है सबस्ट्रिंग 's.substring (cutPos + 1, s.length()) के बजाय –
;', बेहतर इस्तेमाल 's.substring (cutPos +1),' – Mot
@Yuri Bulkin, धन्यवाद! मैंने अपनी समस्या तय की। –
यह करना चाहिए:
String s = "How are you?";
String first = s.substring(0, s.length()/2); // gives "How ar"
String second = s.substring(s.length()/2); // gives "e you?"
String.substring(int i)
एक तर्क के साथ स्थिति i
String.substring(int i, int j)
में शुरुआत सबस्ट्रिंग रिटर्न दो तर्कों i
में शुरुआत और समाप्त होने पर सबस्ट्रिंग रिटर्न j-1
।
(ध्यान दें कि यदि स्ट्रिंग की लंबाई अजीब है, second
पूर्णांक प्रभाग में राउंडिंग के कारण first
एक से अधिक चरित्र होगा।)
String s0 = "How are you?";
String s1 = s0.subString(0, s0.length()/2);
String s2 = s0.subString(s0.length()/2);
जब तक s0 नहीं है शून्य।
संपादित
इस रूप में आप या तो सूचकांक को 1 जोड़ने नहीं कर रहे हैं अजीब लंबाई स्ट्रिंग्स के लिए काम करेंगे। आश्चर्य की बात है कि यह शून्य लंबाई स्ट्रिंग पर भी काम करता है।
यहां एक विधि है जो एक स्ट्रिंग को n लंबाई में विभाजित करती है। (स्ट्रिंग लंबाई बिल्कुल द्वारा n विभाजित नहीं किया जा सकता है, तो अंतिम आइटम कम हो जाएगा।)
public static String[] splitInEqualParts(final String s, final int n){
if(s == null){
return null;
}
final int strlen = s.length();
if(strlen < n){
// this could be handled differently
throw new IllegalArgumentException("String too short");
}
final String[] arr = new String[n];
final int tokensize = strlen/n + (strlen % n == 0 ? 0 : 1);
for(int i = 0; i < n; i++){
arr[i] =
s.substring(i * tokensize,
Math.min((i + 1) * tokensize, strlen));
}
return arr;
}
टेस्ट कोड:
/**
* Didn't use Arrays.toString() because I wanted to have quotes.
*/
private static void printArray(final String[] arr){
System.out.print("[");
boolean first = true;
for(final String item : arr){
if(first) first = false;
else System.out.print(", ");
System.out.print("'" + item + "'");
}
System.out.println("]");
}
public static void main(final String[] args){
printArray(splitInEqualParts("Hound dog", 2));
printArray(splitInEqualParts("Love me tender", 3));
printArray(splitInEqualParts("Jailhouse Rock", 4));
}
आउटपुट:
[ 'हाउंड', 'कुत्ता']
[ 'लव', 'मुझे ते' , 'nder']
['जेल', 'हाउस', 'ई रो', 'सीके']
हा, मैं वास्तव में इस के लिए देख रहा था। :) तो आलसी .. धन्यवाद! – milosmns
मुझे कहीं भी कोई जवाब नहीं मिला।
पहली जगह आपको हमेशा देखना चाहिए क्लास के लिए javadocs पर: इस मामले में java.lang.String
। javadocs
यदि लंबाई अजीब है तो क्या होगा? – Fluffy
@roddik: यह देखते हुए कि लंबाई एक int है और 2 एक int है, यह पूर्णांक विभाजन करेगा, जिसके परिणामस्वरूप दूसरी स्ट्रिंग की तुलना में कम पहली स्ट्रिंग होगी। – Powerlord