2015-03-05 10 views
6

मैं Codewars में खाता प्राप्त करने का प्रयास कर रहा हूं और आपको आश्चर्य हुआ कि आपको उन्हें प्रोग्रामिंग भाषाओं में से एक में कुछ बुनियादी ज्ञान है। मैंने जावा चुना लेकिन एक अभ्यास में फंस गया। कोड है:कोडवेयर साइन अप

public class Person { 
    String name; 

    public Person(String personName) { 
     name = personName; 
    } 

    public String greet(String yourName) { 
     return String.format("Hi %s, my name is %s", yourName, name); 
    } 
} 

यह कहता है, "इस कोड को सही करें, ताकि बधाई कार्य अपेक्षित मूल्य वापस कर सके"। बात यह है कि, मुझे त्रुटि दिखाई नहीं दे रही है और असल में मैंने कोड को ग्रहण में कॉपी किया है और जावा कंपाइलर को बदलने के बाद और संस्करण 1.6 का उपयोग कोड को काम करता है, कोई त्रुटि नहीं है और यदि आप इसे मुख्य विधि से आज़माते हैं तो यह अपेक्षित मान देता है।

यदि केवल वे आपको बताएंगे कि अपेक्षित मूल्य कौन सा है ... सबमिट करते समय, कोई फर्क नहीं पड़ता कि मैं क्या प्रयास करता हूं, मुझे हमेशा "कोड अपेक्षित काम नहीं करता" मिलता है।

कोई विचार?

+3

हाँ आपको 'रिटर्न स्ट्रिंग.फॉर्मैट ("हाय% एस, मेरा नाम% s", नाम, yourName) करना चाहिए; '। वे जो कोड देते हैं वह वाक्य रचनात्मक रूप से सही है लेकिन वे उम्मीद करते हैं कि आप दूसरी तरफ से नमस्कार करें। –

+0

कोई शब्द नहीं ... हाहाहा। दोस्त बहुत - बहुत धन्यवाद! – Fernando

+1

मुझे संदेह है कि वे चाहते हैं कि आप 'String.format()' में मानों को स्वैप करें, हालांकि यह बहुत संदिग्ध है। विधि निर्दिष्ट नहीं है कि क्या आप उस व्यक्ति या व्यक्ति को अभिवादन करने वाले व्यक्ति को अभिवादन करते हैं ... – David

उत्तर

11

आप सही हैं; यह कोड लिखित के रूप में सही है, और कोडवार लोग हड्डी हैं। वे शायद आप अन्य तरीकों से नाम स्विच करना चाहते हैं।

ऑब्जेक्ट पर किसी फ़ंक्शन को कॉल करने और तर्क देने के लिए ओओ रूपक "ऑब्जेक्ट को दिए गए ऑब्जेक्ट पर कार्रवाई करने के लिए कहें"। दूसरे शब्दों में, यदि ऑब्जेक्ट Jim है, तो Jim.greet("Joe") जिम को नमस्कार करने के लिए जिम को बता रहा है, और "हाय, जो, मेरा नाम जिम है" करना सही बात है।

वास्तव में, के बाद से ग्रीटिंग वास्तव में दो व्यक्तियों के बीच एक संचार है, ऐसा करने के लिए वास्तविक रूप से सही बात नहीं greet के लिए एक स्ट्रिंग नाम पारित करने के लिए, लेकिन एक Person पारित करने के लिए, और greet कॉल कि Person के beGreeted() विधि है।

+0

सहमत हैं। इस तरह के प्रश्न भयानक हैं। – michaelgulak

2

उत्तर है: बस आपको String.format() में चर को दो स्वैप करने की आवश्यकता है।

प्रश्न:

वापसी String.Format (, नाम, yourname "हाय% s, मेरा नाम% s है");

उत्तर:

वापसी String.Format ("हाय% s, मेरा नाम% s है", yourname, नाम);

public class Person 
{ 
    String name; 
    public Person(String personName){ 
    name = personName; 
    } 
    public String greet(String yourName) 
     { 
     return String.format("Hi %s, my name is %s", yourName,name); 
     } 
    } 
संबंधित मुद्दे