मैं है निम्न वर्णों कि मैं चाहती हूं "अवैध" पर विचार किया जाना शामिल है वापस जाने के लिए:जावा समारोह यदि स्ट्रिंग अवैध अक्षर
~
, #
, @
, *
, +
, %
, {
, }
, <
, >
, [
, ]
, |
, “
, ”
, \
, _
, ^
मैं एक विधि है कि एक स्ट्रिंग निरीक्षण करता है और निर्धारित करता है (true
/false
) लिखने के लिए चाहते हैं, तो यह है कि स्ट्रिंग इन अवैध शामिल हैं:
public boolean containsIllegals(String toExamine) {
return toExamine.matches("^.*[~#@*+%{}<>[]|\"\\_^].*$");
}
हालांकि, एक सरल matches(...)
जांच इस बात के लिए संभव नहीं है। मुझे स्ट्रिंग में प्रत्येक चरित्र को स्कैन करने की विधि चाहिए और सुनिश्चित करें कि यह इन वर्णों में से एक नहीं है। बेशक, मैं कुछ कर सकते हैं भयानक की तरह:
public boolean containsIllegals(String toExamine) {
for(int i = 0; i < toExamine.length(); i++) {
char c = toExamine.charAt(i);
if(c == '~')
return true;
else if(c == '#')
return true;
// etc...
}
}
वहाँ एक और अधिक सुरुचिपूर्ण/इस पूरा करने की कारगर तरीका है?
'मैचों 'का उपयोग करना क्यों संभव नहीं है? –
क्योंकि यह अच्छा नहीं है! – thang