2015-11-19 4 views
5

यह पहली नज़र में नो-ब्रेनर प्रतीत होता है। यह शायद है, लेकिन कुछ चीजें मुझे महसूस कर रही हैं कि मुझे कुछ याद आ रहा है। पहले the Java documentation for Character.isWhitespace इसे बाहर करने के लिए प्रतीत होता है। व्हाइटस्पेस के रूप में क्या है और क्या अनुमति नहीं है इसकी परिभाषा बहुत निश्चित ('अगर और केवल अगर') होती है और पहली पंक्ति एक गैर-ब्रेकिंग स्पेस नहीं कहती है।क्या जावा कैरेक्टर.इस्वाइटस्पेस के प्रयोजनों के लिए व्हाइटस्पेस के रूप में 'सामान्य' स्थान को मानता है?

मैंने हमेशा एक सामान्य 'स्पेस' माना है - जब आप स्पेसबार दबाते हैं तो आपको वह चीज़ मिलती है - non-breaking space के रूप में।

तो यह सूची में कहां फिट है? सूची को this question के उच्चतम रेटेड उत्तर में निश्चित माना जाता है - क्या मैं इसे गलत पढ़ रहा हूं? इसके अलावा, this question में शीर्ष उत्तर के पहले टिप्पणीकर्ता को उनके संदेह (एक अलग संदर्भ में) लगता है। फिर भी जब मैं परीक्षण करने के लिए कोड का एक साधारण बिट बनाता हूं, तो यह इंगित करता है कि एक सामान्य स्थान व्हाइटस्पेस का एक उदाहरण है, जैसा कि कोई उम्मीद करेगा।

import static java.lang.Character.isWhitespace; 

public class WhitespaceCheck { 

    public static void main(String[] args) { 

     Character test = ' '; 

     if (Character.isWhitespace(test)) { 
      System.out.println("Is whitespace!");       
     } else { 
      System.out.println("Is not whitespace!"); 
     } 
    } 
} 

तो, मैं गलत तरीके से सूची में पहले आइटम पढ़ रहा हूँ, यह सूची पर कहीं और है, या सूची ही बस गलत क्या है?

+1

मुझे लगता है कि यह दस्तावेज _does_ राज्य है जिसमें यह शामिल है, क्योंकि 'SPACE_SEPARATOR'' U + 0020' है यदि मुझे –

+1

गलत नहीं है, तो मैंने माइक्रोसॉफ्ट वर्ड में गैर-ब्रेकिंग रिक्त स्थान का उपयोग किया है ताकि शब्दों के बीच होने वाली लाइन ब्रेक को रोका जा सके कि मैं वास्तव में एक साथ रखा जाना चाहता था। वे Ctrl + Shift + Spacebar का उपयोग करके दर्ज किए गए थे। उन्हें उस चरित्र के साथ भ्रमित नहीं किया जाना चाहिए जिसे आम तौर पर अकेले स्पेसबार दबाकर बनाया जाता है। –

+0

@a_horse_with_no_name लगभग वहाँ! जैसा कि अन्य उत्तर कहता है, 'यू +0020' को SPACE_SEPARATOR द्वारा कवर यूनिकोड की श्रेणी में शामिल किया गया है। – Reg

उत्तर

12

आप गलत हैं; एक गैर-ब्रेकिंग स्पेस लाइन ब्रेक को रोकती है। यह एक विशेष प्रकार की जगह है और एक "सामान्य" नहीं है जो लाइन ब्रेक की अनुमति देता है। यदि एक "सामान्य" स्थान एक गैर-ब्रेकिंग स्पेस था तो स्क्रीन के किनारे तक पहुंचने पर लाइनें कभी भी लपेट नहीं जाएंगी जब तक आप हर बार मैन्युअल रूप से रिटर्न दबाएंगे।

बहुत पहली पंक्ति कहते हैं:

यह एक यूनिकोड अंतरिक्ष चरित्र (SPACE_SEPARATOR, LINE_SEPARATOR, या PARAGRAPH_SEPARATOR) है लेकिन यह भी एक नॉन-ब्रेकिंग स्पेस ('\ u00A0', '\ u2007' नहीं है, '\ u202F')

यूनिकोड SPACE_SEPARATOR के अंतर्गत आने वाले खाली स्थान के की एक सूची यहां पाया जा सकता:

https://en.wikipedia.org/wiki/Whitespace_character

SPACE_SEPARATOR के लिए प्रलेखन का कहना है कि यह एक विशिष्ट चरित्र नहीं, यूनिकोड वर्णों की एक श्रेणी का जिक्र कर रहा है। शीर्षक की 'सामान्य' जगह (जिसे आमतौर पर स्पेसबार द्वारा उत्पादित किया जाता है) इस श्रेणी में शामिल किया गया है।

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

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