2010-09-05 4 views
10

एक स्कैला एप्लिकेशन कुछ डेटा प्रोसेसिंग करता है। पहले से प्रदर्शित होने वाले नए मूल्य को जोड़ने के बजाय परिवर्तन पर पिछले मूल्य को ओवरराइट करने वाले पर्सेंट में प्रोसेसिंग प्रगति दिखाना अच्छा लगेगा। इस प्रभाव को कैसे प्राप्त करें? मैं लिनक्स पर स्कैला 2.8 का उपयोग करता हूं।स्कैला या जावा में, जोड़ने के बजाए अपनी पिछली सामग्री को प्रतिस्थापित करने के लिए कंसोल के लिए एक पंक्ति को कैसे मुद्रित करें?

+7

(1 100 के लिए) foreach {k => {Thread.Sleep (200); printf ("\ r% 2d", k)}} – Eastsun

उत्तर

10

आपके सबसे आसान विकल्प कैरिज रिटर्न का उपयोग लाइनफेड "\r" या बैकस्पेस कैरेक्टर "\u0008" के बिना करना है। यदि आप बैकस्पेस करते हैं, तो आपको ट्रैक रखने की आवश्यकता है कि आपने कितने अक्षर उत्सर्जित किए हैं ताकि आप पर्याप्त बैक अप ले सकें (और किसी भी अतिरिक्त को खाली कर सकें)। यदि आप कैरिज रिटर्न करते हैं, तो आपको पूरी लाइन को फिर से लिखना होगा (और रिक्त स्थान को खाली करने के लिए रिक्त स्थान लिखना होगा)।

2

यदि आप सी/सी ++ में प्रोग्रामिंग कर रहे थे, तो उत्तर स्पष्ट रूप से "ncurses" होगा।

जावा में एक शाप अंतर्गत प्रयोग आप में रुचि हो सकती है:

Java Curses

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

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