java - Not printing out all of the statements written -
नमूना चलाने:
लाइसेंस मान्यकर्ता एक अंतिम नाम दर्ज करें: ab bA एक अंतिम नाम दर्ज करें : एबीए बीए दर्ज करें जन्म के वर्ष: ए 12 वी दर्ज करें जन्म के वर्ष: 1 9 7 ड्रायवर का लाइसेंस संख्या दर्ज करें: ए 123-4567-9801-23 निरंतर मेरा कोड है: import java.util.Scanner; सार्वजनिक वर्ग पांच { <पूर्व> निजी स्थिर स्ट्रिंग मिलनाललाइट (स्कैनर स्क) {System.out.println ("लाइसेंस सत्यापनकर्ता"); System.out.print ("अंतिम नाम दर्ज करें: अब बीए"); स्ट्रिंग लास्टनाम = स्क। एनएक्सटाइन ()। ट्रिम (); अगर (lastname.length () == 0) lastname = getLastName (sc); Int numspaces = 0; के लिए (int i = 0; i & lt; lastname.length (); i ++) {if (Character.isSpace (lastname.charAt (i))) {numspaces ++; } और अगर (! वर्ण। लिटटर (lastname.charAt (i))) {lastname = getLastName (sc); } यदि (numspaces & gt; 2) {lastname = getLastName (sc); }} वापस अंतिम नाम; } प्राइवेट स्टैटिक बूलियन कैरेक्टर (चार चारएट) {वापसी झूठी; } सार्वजनिक स्थैतिक स्ट्रिंग लेयर आइफबर्थ (स्कैनर स्क) {System.out.print ("जन्म वर्ष का वर्ष: 1 9 7 9"); स्ट्रिंग वर्ष = sc.nextLine ()। ट्रिम (); अगर (वर्ष.लांब ((=) == 0) वर्ष = मिलनएयरऑफबर्थ (एससी); {Int yearint = Integer.parseInt (वर्ष) का प्रयास करें; अगर (सालाना और लेफ्टिनेंट; 1 9 00 || इलिंट & gt; 1 999) {वर्ष = मिलनएयरऑफबर्थ (एससी); }} पकड़ (संख्याफ़ॉर्मेट अपवाद ई) {year = getYearOfBirth (sc); } वापसी वर्ष; } सार्वजनिक स्थिर स्ट्रिंग लिक्सेन्सेंम्बर (स्कैनर स्क) {System.out.print ("ड्राइवर का लाइसेंस संख्या दर्ज करें:"); स्ट्रिंग लायेंसेनम = स्क। एनएक्सटाइन ()। ट्रिम (); अगर (लाइसेंसेनम। लैंप ()! = 17 || लाइसेंसेनम। लांघ () == 0) {लाइसेंसेनम = निकलेंसेंम्बर (एससी); } स्ट्रिंग अर [] = लाइसेंसेनम। स्प्लिट ("-"); अगर (arr.length! = 4) {लाइसेंसेनम = निकलेंसेंम्बर (एससी); } If (Character.isLetter (arr [0] .charAt (0))) {if (Character.isLowerCase (arr [0] .charAt (0))) {licencenum = getlicensenumber (sc); }} और {लाइसेंसेनम = निकलेंसेंम्बर (एससी); } कोशिश {लंबी। पैरासेल्ंग (एआरआर [0]। एसबस्ट्रिंग (1) + एआरआर [1] + एआरआर [2] + एआरआर [3]); } पकड़ (संख्याफ़ॉर्मेट अपवाद ई) {लाइसेंसन = निकलसेंनम्बर (एससी); } रिटर्न लायसेनेंम; } सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {स्कैनर sc = नया स्कैनर (System.in); स्ट्रिंग अंतिम नाम = getLastName (एससी); स्ट्रिंग साल ओफ़ब्रार्थ = मिलनएयरऑफबर्थ (एससी); स्ट्रिंग लाइसेंसएनंबर = निकलेंसेंम्बर (स्क); If (licensenumber.substring (0, 1) .equalsIgnoreCase (lastname.substring (0, 1)) & amp; amp; amp; amp; amp; amp; amp; लाइसेंसिंग। सबस्ट्रिंग (8, 9) + लाइसेंससेबर.substring (10, 11)) बराबर (वर्ष का जन्म। Substring (2))) {System.out.println ("संगत"); } Else System.out.println ("धोखाधड़ी"); }} यह केवल आउटपुट होगा:
लाइसेंस मान्यकर्ता अंतिम नाम दर्ज करें: मैं उलझन में हूँ क्यों अन्य स्ट्रिंग विधियों outputting नहीं हैं? साथ ही, ifName के लिए if स्टेटमेंट "इसास्पेस" को पार कर गया है और कहता है कि यह घिस रहा है
यह आपके द्वारा अंतिम नाम दर्ज करने के बाद केवल प्रांप्ट प्रिंट करेगा आप साल में निवेश करते हैं
Scanner.nextLine () जब तक वह दर्ज नहीं करता तब तक सभी उपयोगकर्ता इनपुट स्कैन करता है इसलिए केवल जब आप हिट दर्ज करेंगे तो इनपुट के लिए पढ़ना बंद कर देंगे और कोड की अगली पंक्ति पर जायें।
और जब से आपने प्रत्येक इनपुट के लिए सत्यापन जांच दर्ज की है, तब तक वह आपके इनपुट को तब तक स्वीकार नहीं करेगा जब तक कि प्रवेश नहीं किया जाता मान वैध है। एक बार जब आप एक वैध इनपुट दर्ज करें और हिट दर्ज करें, तो यह अगली विधि पर जाएंगे।
संपादित करें: else if (! IsLetter (lastname.charAt (i))) {lastname = getLastName (sc); } आपके कोड चेक में उपरोक्त भाग अगर चरित्र एक पत्र है या नहीं और संकेत वापस प्रिंट करता है अगर यह अक्षर / वर्णमाला नहीं है इसलिए, हर बार जब यह आपके अंतिम नाम में किसी स्थान का सामना करता है, तो वह जांच में विफल रहता है और आपको अंतिम नाम दर्ज करने के लिए संकेत देता है।
Comments
Post a Comment