मैं एक फॉर्म से उपयोगकर्ता इनपुट मान्य कर रहा हूँ।जावा में नंबरफॉर्मैट की तुलना में संख्याओं को और अधिक सख्त कैसे पार्स करें?
मैं NumberFormat
के साथ इनपुट को पार्स करता हूं, लेकिन यह बुरा है और लगभग कुछ भी अनुमति देता है। क्या संख्या को अधिक सख्त करने का कोई तरीका है?
उदा। मैं एक पूर्णांक के लिए इन तीन आदानों की अनुमति नहीं करना चाहते हैं, लेकिन Numberformat
उन सभी को अनुमति देते हैं:
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setParseIntegerOnly(true);
Number numberA = nf.parse("99.731"); // 99 (not what the user expect)
Number numberB = nf.parse("99s.231"); // 99 (invalid)
Number numberC = nf.parse("9g9"); // 9 (invalid)
System.out.println(numberA.toString());
System.out.println(numberB.toString());
System.out.println(numberC.toString());
कि यह कैसे एक स्ट्रिंग में कनवर्ट करने के बारे में और उसके बाद अनुकूलित कर सकते हैं स्ट्रिंग पर लूप और केवल अक्षर "0" .. "9" की अनुमति दें?या बस getIntegerInstance() के लिए जाओ; – ComputerSaysNo
@ डोरिनडिमिनिका: 'getIntegerInstance()' एक ही परिणाम देता है। – Jonas
क्यों नहीं 'Integer.parseInt (स्ट्रिंग) ' –