इस प्रकार मैं सिर्फ बैकस्पेस भागने का परीक्षण किया:जावा बैकस्पेस बचने
System.out.println("Hello\b");
मैं उत्पादन मिलने की उम्मीद: नरक
लेकिन यह था: "हैलो" एक वर्ग ब्लॉक
किसी को भी जानता है कि कैसे साथ जावा इसे संभालते हैं?
इस प्रकार मैं सिर्फ बैकस्पेस भागने का परीक्षण किया:जावा बैकस्पेस बचने
System.out.println("Hello\b");
मैं उत्पादन मिलने की उम्मीद: नरक
लेकिन यह था: "हैलो" एक वर्ग ब्लॉक
किसी को भी जानता है कि कैसे साथ जावा इसे संभालते हैं?
जावा उस चरित्र को 'संभाल' नहीं देता है। यह सब एक बाइट स्ट्रीम है जिसके बारे में ओएस कहता है कि यह बाइट लिख सकता है, और यह एएससीआईआई बैकस्पेस सहित खुशी से बाइट लिख देगा।
होता है जब स्ट्रीम प्राप्त करता है कि उस चरित्र के पास जावा के साथ कुछ भी नहीं है, यह पूरी तरह से टर्मिनल-निर्भर है। कुछ टर्मिनल पिछले चरित्र को मिटा देंगे, कुछ बैकस्पेस चरित्र को कुछ अजीब ग्लिफ के रूप में प्रदर्शित करेंगे, या यहां तक कि एक विशेष "बैकस्पेस कैरेक्टर" ग्लिफ के रूप में भी प्रदर्शित होंगे। कुछ चरित्र को पूरी तरह से छोड़ सकते हैं अगर वे इसकी व्याख्या नहीं कर सकते हैं, अन्य (अधिकांश टर्मिनल अनुकरणकर्ता, वास्तव में) वे कॉन्फ़िगर किए गए तरीके के आधार पर अलग-अलग व्यवहार करेंगे। लेकिन इन सभी के पास जावा के साथ कुछ लेना देना नहीं है, वे इस तरह से व्यवहार करेंगे कि वे जावा या पर्ल print
या सी ++ cout
या जो भी कुछ भी हैं।
यह विंडोज कमांड कंसोल में पूरी तरह से ठीक काम करना चाहिए। यह बग ग्रहण बग के रूप में पहचाने जाने योग्य है: bug 76936। यह भी देखें How to get backspace \b to work in Eclipse’s console?
आप System.out.println उपयोग कर रहे हैं ("...") जो अनिवार्य रूप से System.out.print है ("... \ n")
.println का प्रयोग न करें, आप केवल नई लाइन को हटा रहे हैं ...
उस मामले में println ("हैलो \ b") "हैलो \ b \ n" नहीं "हैलो \ n \ b" उत्सर्जित करेगा। और वह ग्लिफ की व्याख्या नहीं करता है। – helios
अपना वांछित आउटपुट यानी Hell
प्राप्त करने के लिए आपको \b
के बाद space
वर्ण जोड़ने की आवश्यकता है। क्योंकि \b
केवल कर्सर (वर्चुअल) को 1 स्थिति पीछे ले जाएगा, लेकिन यह इसे हटा नहीं देगा। आप जो कुछ कर सकते हैं वह space
द्वारा हटाए जाने वाले चरित्र को प्रतिस्थापित कर सकता है। इस प्रकार आउटपुट के रूप में Hell
प्राप्त करने के लिए निम्न पंक्ति का प्रयास करें:
System.out.println("Hello\b ");
पुनश्च: यह समाधान विंडोज ओएस और Ubuntu ओएस पर काम करता है। अन्य ओएस के लिए यह उपरोक्त @ किलियन फोथ द्वारा समझाया गया है।
अपनी कक्षा फ़ाइल निष्पादित करने के लिए टर्मिनल का उपयोग करने का प्रयास करें।
java classname
जब आईडीई निष्पादित \ b, यह स्वचालित रूप से इसे अनदेखा कर देगा। क्योंकि आईडीई में चलाने के लिए कोई संबंधित लाइब्रेरी नहीं है \ b। हालांकि, यदि आप उन्हें टर्मिनल में चलाते हैं, तो इसे निष्पादित किया जा सकता है। सभी टर्मिनलों में वह पुस्तकालय है।
आप एक समारोह लिखने के लिए यह करने के लिए चाहते हो सकता है:
def static public String backspace (String str){
return str.substring(0,str.length-1)
}
धन्यवाद, लेकिन यह अभी भी खिड़कियों कंसोल में काम नहीं किया और साथ ही। क्या आपने इसे अपनी मशीन पर आज़माया था। शायद यह मेरी प्रणाली की समस्या है। – Alfred
मैंने विंडोज कंसोल में \ r का उपयोग किया है (लाइन फीड के बिना कैरिज रिटर्न) और यह ठीक काम करता है। मैं इसे "प्रसंस्करण एनएन%" chaging टेक्स्ट दिखाने के लिए उपयोग करता हूं। – helios