दिलचस्प पोस्ट
PHP में बहु-आयामी सरणी से डुप्लिकेट मान कैसे निकालें असतत फूरियर की गणना कैसे करें? MySQL: डेटाबेस पर सभी ** विशेषाधिकार ** ग्रांट रूबी में एक यादृच्छिक स्ट्रिंग कैसे उत्पन्न करें मर्जेशोर्ट पायथन मुझे जावास्क्रिप्ट के साथ पृष्ठभूमि में एक नई विंडो खोलने की जरूरत है, और सुनिश्चित करें कि मूल अभी भी केंद्रित है कोई स्पष्ट कारण के लिए उपयोग पायथन सूची स्लाइस वाक्यविन्यास एक JTable सेल क्लिक-सक्षम में एक JButton कैसे बनाने के लिए? जावास्क्रिप्ट के पैरासेन्ट अष्टक व्यवहार के आसपास मैं कैसे काम करूं? मास्टर शाखा और 'मूल / मास्टर' अलग हो गए हैं, कैसे 'शाखाओं' को अपवर्जित करना है? Node_modules फ़ोल्डर के अंदर स्थित स्क्रिप्ट को कैसे शामिल करें? पायथन में इवेंट सिस्टम केस और ग्रुप द्वारा धुरी के लिए डायनामिक विकल्प लम्बाई एन के एक सरणी से शीर्ष कश्मीर मान लौटने के लिए इष्टतम एल्गोरिथ्म पैरामीटर की तरह खंड JPQL में

क्या मैं अनुक्रमों को दोहराकर जावा में स्ट्रिंग्स बढ़ा सकता हूँ?

मेरे पास निम्न की तरह कुछ है:

int i = 3; String someNum = "123"; 

i "0" को कुछ someNum स्ट्रिंग में जोड़ना चाहता हूं। क्या इसका कोई तरीका है कि मैं इसे स्ट्रिप करने के लिए पायथन की तरह इसे दोहरा सकते हैं?

तो मैं बस जा सकता था:

 someNum = sumNum + ("0" * 3); 

या कुछ इसी तरह?

जहां, इस मामले में, मेरा अंतिम परिणाम होगा:

"123,000"।

वेब के समाधान से एकत्रित समाधान "क्या मैं अनुक्रमों को दोहराकर जावा में स्ट्रिंग्स बढ़ा सकता हूँ?"

सादे जावा में बिना किसी निर्भरता के सबसे आसान तरीका निम्न एक लाइनर है:

 new String(new char[generation]).replace("\0", "-") 

पुनरावृत्तियों की संख्या के साथ पीढ़ी को बदलें, और स्ट्रिंग (या चार) के साथ "-" आप दोहराएंगे

यह सब एक रिक्त स्ट्रिंग बनाते हैं जिसमें 0x00 अक्षरों की संख्या होती है, और अंतर्निहित स्ट्रिंग # विधि को बाकी के स्थान पर छोड़ देता है।

कॉपी और पेस्ट करने के लिए यहां एक नमूना है:

 public static String repeat(int count, String with) { return new String(new char[count]).replace("\0", with); } public static String repeat(int count) { return repeat(count, " "); } public static void main(String[] args) { for (int n = 0; n < 10; n++) { System.out.println(repeat(n) + " Hello"); } for (int n = 0; n < 10; n++) { System.out.println(repeat(n, ":-) ") + " Hello"); } } 

नहीं, लेकिन आप स्कला में कर सकते हैं! (और फिर इसे संकलित करें और इसे किसी भी जावा कार्यान्वयन का उपयोग कर चलाएं !!!!)

अब, अगर आप इसे जावा में आसान तरीके से करना चाहते हैं, तो अपाचे कॉमन्स-लैंग पैकेज का उपयोग करें। यह मानते हुए कि आप मेवेन का उपयोग कर रहे हैं, इस निर्भरता को अपने pom.xml में जोड़ें:

  <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.4</version> </dependency> 

और फिर StringUtils.repeat का उपयोग इस प्रकार है:

 import org.apache.commons.lang.StringUtils ... someNum = sumNum + StringUtils.repeat("0", 3); 

Google अमरीका Strings#repeat() साथ ऐसा करने का एक और तरीका प्रदान करता है:

 String repeated = Strings.repeat("pete and re", 42); 

दो तरीकों से मन आता है:

 int i = 3; String someNum = "123"; // Way 1: char[] zeroes1 = new char[i]; Arrays.fill(zeroes1, '0'); String newNum1 = someNum + new String(zeroes1); System.out.println(newNum1); // 123000 // Way 2: String zeroes2 = String.format("%0" + i + "d", 0); String newNum2 = someNum + zeroes2; System.out.println(newNum2); // 123000 

मार्ग 2 को कम किया जा सकता है:

 someNum += String.format("%0" + i + "d", 0); System.out.println(someNum); // 123000 

String#format() बारे में अधिक अपने एपीआई डॉक्टर और java.util.Formatter में से एक में उपलब्ध है।

यदि आप ओपी जैसे एकल वर्णों को दोहरा रहे हैं, और दोहराव की अधिकतम संख्या बहुत अधिक नहीं है, तो आप इस तरह एक सरल उप-ऑपरेशन ऑपरेशन का उपयोग कर सकते हैं:

 int i = 3; String someNum = "123"; someNum += "00000000000000000000".substring(0, i); 

नहीं, जावा में यह सुविधा नहीं है। आपको स्ट्रिंगबइल्डर का उपयोग करके अपना स्ट्रिंग बनाना होगा, और किसी प्रकार का लूप।

जावा 8 एक तरीका प्रदान करता है (यद्यपि थोड़ी सी भद्दी) एक विधि के रूप में:

 public static String repeat(String s, int n) { return Stream.generate(() -> s).limit(n).collect(Collectors.joining("")); } 

या कम कुशल, लेकिन अच्छी लग रही आईएमएचओ:

 public static String repeat(String s, int n) { return Stream.generate(() -> s).limit(n).reduce((a, b) -> a + b); } 

डॉलर के साथ:

 String s = "123" + $("0").repeat(3); // 123000 

यह करने का आसान तरीका

 private String repeatString(String s,int count){ StringBuilder r = new StringBuilder(); for (int i = 0; i < count; i++) { r.append(s); } return r.toString(); } 

पेरू के साथ:

 Joiner.on("").join(Collections.nCopies(i, someNum)); 

मुझे विश्वास नहीं है कि जावा मूल रूप से इस सुविधा को प्रदान करता है, हालांकि यह अच्छा होगा। मैं पर्ल कोड को कभी-कभी लिखता हूं और पर्ल में x ऑपरेटर स्ट्रिंग दोहराते हुए वास्तव में काम करता है!

हालांकि commons-lang में StringUtils इस सुविधा को प्रदान करता है । इस विधि को repeat() जाता है repeat() आपका एकमात्र दूसरा विकल्प यह है कि मैन्युअल रूप से एक लूप का उपयोग कर उसे बनाना है।

नहीं, आप नहीं कर सकते हालांकि आप एक चरित्र को दोहराने के लिए इस फ़ंक्शन का उपयोग कर सकते हैं।

 public String repeat(char c, int times){ StringBuffer b = new StringBuffer(); for(int i=0;i &lt; times;i++){ b.append(c); } return b.toString(); } 

अस्वीकरण: मैंने इसे यहां टाइप किया गलतियाँ हो सकती हैं

डेव हार्टनोल के उत्तर का एक सामान्यीकरण (मैं मुख्य रूप से अवधारणा विज्ञापन बेतुकी ले रहा हूं, हो सकता है कि इसका इस्तेमाल किसी भी चीज में न करें जहां आपको गति चाहिए)। यह किसी को दिए गए पैटर्न के बाद स्ट्रिंग को I अक्षर के साथ भरने के लिए अनुमति देता है

 int i = 3; String someNum = "123"; String pattern = "789"; someNum += "00000000000000000000".replaceAll("0",pattern).substring(0, i); 

अगर आपको एक पैटर्न की आवश्यकता नहीं है, लेकिन सिर्फ एक ही अक्षर आप इसका इस्तेमाल कर सकते हैं (यह तेजी से तेज है):

 int i = 3; String someNum = "123"; char c = "7"; someNum += "00000000000000000000".replaceAll("0",c).substring(0, i); 

क्या पहले से ही कहा गया है के समान:

 public String multStuff(String first, String toAdd, int amount) { String append = ""; for (int i = 1; i <= amount; i++) { append += toAdd; } return first + append; } 

इनपुट multStuff("123", "0", 3);

आउटपुट "123000"

मैंने एक ऐसा तरीका बनाया है जो आप चाहते हैं वही काम करें, यह कोशिश करने के लिए स्वतंत्र महसूस करें:

 public String repeat(String s, int count) { return count > 0 ? s + repeat(s, --count) : ""; } 

हम अजगर में * का उपयोग करके गुणा-तार बना सकते हैं, लेकिन जावा में नहीं, आप अपने मामले में पाश के लिए उपयोग कर सकते हैं:

 String sample="123"; for(int i=0;i<3;i++) { sample=+"0"; } 

जावा में ऐसा करने के लिए कोई शॉर्टकट नहीं है जैसा आपने पायथन में दिया था।

आपको यह करना होगा:

 for (;i > 0; i--) { somenum = somenum + "0"; } 

सबसे सरल तरीका यह है:

 String someNum = "123000"; System.out.println(someNum);