मैं कोड के नीचे मिला है और मैंने पूछा था जो विकल्प निम्नलिखित पैटर्न हो जाता है:स्ट्रिंग्स
XXXX-xxxx-xxxx-2324
...
कोड नीचे:
public class CCMark {
public static String maskCC(String creditCard){
String x = "XXXX-XXXX-XXXX-";
//line 1
}
public static void main(String[] args) {
System.out.println(maskCC("1234-5678-1234-2324"));
System.out.println(maskCC("4567-5678-1234-5643"));
System.out.println(maskCC("1234-5678-1234-4654"));
System.out.println(maskCC("4567-5678-1234-5435"));
}
}
संभव विकल्प नीचे
कि "लाइन 1" पर डाला जा सकता है:
A)
return x + creditCard.substring(15, 19);
B)
StringBuilder sb = new StringBuilder(x);
sb.append(creditCard, 15, 19);
return sb.toString();
मुझे लगता है कि यहां सबसे अच्छा विकल्प है, क्योंकि ए और बी हमें एक ही आउटपुट प्रदान करते हैं, बी है, क्योंकि यह स्ट्रिंगबिल्डर का उपयोग कर रहा है जिसका अर्थ है कि इसका दृष्टिकोण उत्परिवर्तनीय है, इसलिए यह विकल्प ए
से कम स्मृति का उपयोग करेगा।क्या मैं गलत हूँ? क्या यह विकल्प हो सकता है कि इस विशेष स्थिति के लिए विकल्प सबसे अच्छा विकल्प है?
इस मामले में, एक कंपाइलर आपके बजाय – Andrew
के बजाय सभी काम करता है, इसलिए यदि संकलक मेरे लिए सभी काम करता है। विकल्प ए सबसे अच्छा तरीका है क्योंकि कोड की कम लाइनों की आवश्यकता है। सही? –
सिवाय इसके कि जावा कंपाइलर बहुत अनुकूलन नहीं करता है ... यह सी ++ नहीं है। संभावना है कि ए काफी अधिक जीसी का कारण बन जाएगा। –