2012-08-08 17 views
9

जावा में किस तरह के सफेद स्थान हैं? यदि टेक्स्ट में कोई सफेद जगह है तो मुझे अपने कोड में जांचना होगा।जावा में व्हाइटसाइट्स

मेरे कोड है:

if (text.contains(" ") || text.contains("\t") || text.contains("\r") 
     || text.contains("\n")) 
{ 
    //code goes here 
} 

मैं पहले से ही के बारे में \n, \t, \r और space पता है।

+0

http://stackoverflow.com/questions/4731055/whitespace-matching-regex-java – perilbrain

+1

मैं 'के लिए कोड की एक पंक्ति बदलना पड़ा है, तो (Character.isWhitespace (text.charAt (i)) || Character.isSpaceChar (text.charAt (i))) {'जो परिणाम मैं चाहता था उसे प्राप्त करने के लिए। – ericharlow

उत्तर

8
boolean containsWhitespace = false; 
for (int i = 0; i < text.length() && !containsWhitespace; i++) { 
    if (Character.isWhitespace(text.charAt(i)) { 
     containsWhitespace = true; 
    } 
} 
return containsWhitespace; 

या, अमरूद का उपयोग कर,

boolean containsWhitespace = CharMatcher.WHITESPACE.matchesAnyOf(text); 
+4

या बूलियन लौटने और अजीब 'ब्रेक' और "संचयक" चर से बचने के लिए इसे एक विधि में रखें। – Thilo

+0

[कैरेक्टर # isWhitespace (int)] का उपयोग करने के लिए यहां कोई कारण होगा (http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isWhitespace (int)) इसके बजाय सुझाए गए [कैरेक्टर # isWhitespace (char)] (http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html#isWhitespace (char))? –

+0

@ जेबी निजेट को गुवा लिब नहीं पता था! धन्यवाद – Tito

0

सूरज docs से:

\ एक खाली स्थान के चरित्र: [\ t \ n \ x0B \ च \ r]

सबसे आसान तरीका regex के साथ उपयोग किया जा सके।

+2

* \ *' का उपयोग करने के लिए * केवल * तरीका नियमित अभिव्यक्ति के साथ है। – EJP

15

गैर-नियमित अभिव्यक्ति दृष्टिकोण के लिए, आप प्रत्येक वर्ण के लिए Character.isWhitespace देख सकते हैं।

boolean containsWhitespace(String s) { 
    for (int i = 0; i < s.length(); ++i) { 
     if (Character.isWhitespace(s.charAt(i)) { 
      return true; 
     } 
    } 
    return false; 
} 

कौन सा जावा में सफेद रिक्त स्थान है?

प्रलेखन निर्दिष्ट करता है क्या जावा खाली स्थान के मानता है:

public static boolean isWhitespace(char ch)

निर्धारित करता है निर्दिष्ट चरित्र सफेद स्थान है अगर जावा के अनुसार। एक चरित्र एक जावा खाली स्थान के चरित्र तभी उस पर निम्न में से एक को संतुष्ट करता है, तो:

  • यह एक यूनिकोड अंतरिक्ष चरित्र (SPACE_SEPARATOR, LINE_SEPARATOR, या PARAGRAPH_SEPARATOR) है लेकिन यह भी एक नॉन-ब्रेकिंग स्पेस (नहीं है '\ u00A0', '\ u2007', '\ u202F')।
  • यह '\u0009', हॉरिज़ोनल टैबुलेशन है।
  • यह '\u000A' है, लाइन फीड।
  • यह '\u000B', वर्टिकल टैबलेट है।
  • यह '\u000C', फॉर्म फीड है।
  • यह '\u000D' है, कैरिएज रिटर्न।
  • यह '\u001C', फ़ाइल SEPARATOR है।
  • यह '\u001D', समूह SEPARATOR है।
  • यह '\u001E', रिकॉर्ड SEPARATOR है।
  • यह '\u001F', यूनिट SEPARATOR है।
-1

तुम क्या कर यह

if(text.split("\\s").length > 1){ 
    //text contains whitespace 
} 
0
boolean whitespaceSearchRegExp(String input) { 

    return java.util.regex.Pattern.compile("\\s").matcher(input).find(); 

} 
+2

एसओ पर आपका स्वागत है। एक अच्छा जवाब देने के लिए कृपया दिशानिर्देश की जांच करें। http://stackoverflow.com/help/how-to-answer – codingadventures

2

तो आप कर सकते हैं की एक नियमित अभिव्यक्ति आधारित रास्ता पर विचार करना चाहते हैं अपने पी में apache.commons.lang का उपयोग करें

public static boolean containsWhitespace(CharSequence seq) 

चेक कि क्या दिया CharSequence कोई श्वेत रिक्ति वर्ण हैं: roject, सबसे आसान तरीका सिर्फ विधि वहां प्रदत्त उपयोग करने के लिए किया जाएगा।

पैरामीटर:

seq - the CharSequence to check (may be null) 

रिटर्न:

true if the CharSequence is not empty and contains at least 1 whitespace character 

यह खाली और अशक्त मापदंडों संभालती है और एक केंद्रीय स्थान पर सुविधा प्रदान करता है।

0

आप क्यों जांच नहीं करते कि text.trim() की एक अलग लंबाई है या नहीं? :

if(text.length() == text.trim().length() || otherConditions){ 
    //your code 
} 
+0

क्योंकि यह शुरुआत के लिए एक और 'स्ट्रिंग' बनाता है। – EJP

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^