System.out.println का उपयोग करके कंसोल में रंग कैसे प्रिंट करें?


324

मैं कंसोल में रंग कैसे प्रिंट कर सकता हूं? जब प्रोसेसर डेटा भेजता है और डेटा प्राप्त करता है तो मैं रंगों में डेटा दिखाना चाहता हूं।


2
यदि कंसोल समर्थन (जैसे ग्रहण जावा कंसोल) stdout / stderr के रंग को अनुकूलित करता है, तो आप एक रंग के लिए System.out.println और दूसरे रंग के लिए System.err.println का उपयोग कर सकते हैं।
jw_

जवाबों:


584

यदि आपका टर्मिनल इसका समर्थन करता है, तो आप अपने आउटपुट में रंग का उपयोग करने के लिए ANSI एस्केप कोड का उपयोग कर सकते हैं । यह आम तौर पर यूनिक्स खोल संकेतों के लिए काम करता है; हालाँकि, यह विंडोज कमांड प्रॉम्प्ट के लिए काम नहीं करता है (हालाँकि, यह साइगविन के लिए काम करता है)। उदाहरण के लिए, आप रंगों के लिए स्थिरांक को परिभाषित कर सकते हैं:

public static final String ANSI_RESET = "\u001B[0m";
public static final String ANSI_BLACK = "\u001B[30m";
public static final String ANSI_RED = "\u001B[31m";
public static final String ANSI_GREEN = "\u001B[32m";
public static final String ANSI_YELLOW = "\u001B[33m";
public static final String ANSI_BLUE = "\u001B[34m";
public static final String ANSI_PURPLE = "\u001B[35m";
public static final String ANSI_CYAN = "\u001B[36m";
public static final String ANSI_WHITE = "\u001B[37m";

फिर, आप उन लोगों को आवश्यक रूप से संदर्भित कर सकते हैं।

उदाहरण के लिए, उपरोक्त स्थिरांक का उपयोग करके, आप समर्थित टर्मिनलों पर निम्नलिखित लाल पाठ आउटपुट बना सकते हैं:

System.out.println(ANSI_RED + "This text is red!" + ANSI_RESET);

अद्यतन: आप जानसी पुस्तकालय की जाँच कर सकते हैं । यह एक एपीआई प्रदान करता है और इसमें जेएनआई का उपयोग करके विंडोज के लिए समर्थन है। मैंने अभी तक इसकी कोशिश नहीं की है; हालाँकि, यह आशाजनक लगता है।

अपडेट 2: इसके अलावा, यदि आप टेक्स्ट के बैकग्राउंड को एक अलग रंग में बदलना चाहते हैं, तो आप निम्नलिखित को भी आज़मा सकते हैं:

public static final String ANSI_BLACK_BACKGROUND = "\u001B[40m";
public static final String ANSI_RED_BACKGROUND = "\u001B[41m";
public static final String ANSI_GREEN_BACKGROUND = "\u001B[42m";
public static final String ANSI_YELLOW_BACKGROUND = "\u001B[43m";
public static final String ANSI_BLUE_BACKGROUND = "\u001B[44m";
public static final String ANSI_PURPLE_BACKGROUND = "\u001B[45m";
public static final String ANSI_CYAN_BACKGROUND = "\u001B[46m";
public static final String ANSI_WHITE_BACKGROUND = "\u001B[47m";

उदाहरण के लिए:

System.out.println(ANSI_GREEN_BACKGROUND + "This text has a green background but default text!" + ANSI_RESET);
System.out.println(ANSI_RED + "This text has red text but a default background!" + ANSI_RESET);
System.out.println(ANSI_GREEN_BACKGROUND + ANSI_RED + "This text has a green background and red text!" + ANSI_RESET);

1
@ WhiteFang34 क्या आप बता सकते हैं कि अगर इसका रंग काला है, तो कम से कम मेरे कंसोल में RESET का उपयोग क्या है? क्या यह डिफ़ॉल्ट या sth की तरह है।
बोरो

8
@ बोरो: रीसेट कोड अब तक निर्धारित सभी एएनएसआई विशेषताओं को बंद कर देता है, जिसे कंसोल को अपनी चूक पर वापस लौटना चाहिए। यदि आप डिफ़ॉल्ट रंग नहीं जानते हैं तो यह उपयोगी है या पृष्ठभूमि रंग, फ़ॉन्ट शैली आदि जैसी कुछ अन्य विशेषताओं का भी उपयोग कर रहे हैं
WhiteFang34

2
जानसी सचमुच महान है! जो लोग ग्रहण में विकसित होते हैं, मैं इस प्लगइन को पुनः प्राप्त कर सकता हूं : mihai-nita.net/2013/06/03/eclipse-plugin-ansi-in-console और कोड का अच्छा टुकड़ा रंग को सक्षम करने के लिए यदि कोड निष्पादित नहीं किया जा रहा है। कंसोल में:if (System.console() == null) System.setProperty("jansi.passthrough", "true");
डैनी लो

1
@PankajNimgade, उत्तर को फिर से पढ़ें और आप शायद इस पर ध्यान दें:however it doesn't work for Windows command prompt
फेलिक्स एडलमन

1
@DannyLo ग्रहण प्लगइन के लिंक के लिए बहुत बहुत धन्यवाद!
नूह ब्रोएल्स

71

public staticखेतों के साथ जावा वर्ग में रंगों की एक सूची यहां दी गई है

प्रयोग

System.out.println(ConsoleColors.RED + "RED COLORED" +
ConsoleColors.RESET + " NORMAL");


नोटRESET मुद्रण के बाद उपयोग करना न भूलें क्योंकि प्रभाव साफ नहीं रहेगा


public class ConsoleColors {
    // Reset
    public static final String RESET = "\033[0m";  // Text Reset

    // Regular Colors
    public static final String BLACK = "\033[0;30m";   // BLACK
    public static final String RED = "\033[0;31m";     // RED
    public static final String GREEN = "\033[0;32m";   // GREEN
    public static final String YELLOW = "\033[0;33m";  // YELLOW
    public static final String BLUE = "\033[0;34m";    // BLUE
    public static final String PURPLE = "\033[0;35m";  // PURPLE
    public static final String CYAN = "\033[0;36m";    // CYAN
    public static final String WHITE = "\033[0;37m";   // WHITE

    // Bold
    public static final String BLACK_BOLD = "\033[1;30m";  // BLACK
    public static final String RED_BOLD = "\033[1;31m";    // RED
    public static final String GREEN_BOLD = "\033[1;32m";  // GREEN
    public static final String YELLOW_BOLD = "\033[1;33m"; // YELLOW
    public static final String BLUE_BOLD = "\033[1;34m";   // BLUE
    public static final String PURPLE_BOLD = "\033[1;35m"; // PURPLE
    public static final String CYAN_BOLD = "\033[1;36m";   // CYAN
    public static final String WHITE_BOLD = "\033[1;37m";  // WHITE

    // Underline
    public static final String BLACK_UNDERLINED = "\033[4;30m";  // BLACK
    public static final String RED_UNDERLINED = "\033[4;31m";    // RED
    public static final String GREEN_UNDERLINED = "\033[4;32m";  // GREEN
    public static final String YELLOW_UNDERLINED = "\033[4;33m"; // YELLOW
    public static final String BLUE_UNDERLINED = "\033[4;34m";   // BLUE
    public static final String PURPLE_UNDERLINED = "\033[4;35m"; // PURPLE
    public static final String CYAN_UNDERLINED = "\033[4;36m";   // CYAN
    public static final String WHITE_UNDERLINED = "\033[4;37m";  // WHITE

    // Background
    public static final String BLACK_BACKGROUND = "\033[40m";  // BLACK
    public static final String RED_BACKGROUND = "\033[41m";    // RED
    public static final String GREEN_BACKGROUND = "\033[42m";  // GREEN
    public static final String YELLOW_BACKGROUND = "\033[43m"; // YELLOW
    public static final String BLUE_BACKGROUND = "\033[44m";   // BLUE
    public static final String PURPLE_BACKGROUND = "\033[45m"; // PURPLE
    public static final String CYAN_BACKGROUND = "\033[46m";   // CYAN
    public static final String WHITE_BACKGROUND = "\033[47m";  // WHITE

    // High Intensity
    public static final String BLACK_BRIGHT = "\033[0;90m";  // BLACK
    public static final String RED_BRIGHT = "\033[0;91m";    // RED
    public static final String GREEN_BRIGHT = "\033[0;92m";  // GREEN
    public static final String YELLOW_BRIGHT = "\033[0;93m"; // YELLOW
    public static final String BLUE_BRIGHT = "\033[0;94m";   // BLUE
    public static final String PURPLE_BRIGHT = "\033[0;95m"; // PURPLE
    public static final String CYAN_BRIGHT = "\033[0;96m";   // CYAN
    public static final String WHITE_BRIGHT = "\033[0;97m";  // WHITE

    // Bold High Intensity
    public static final String BLACK_BOLD_BRIGHT = "\033[1;90m"; // BLACK
    public static final String RED_BOLD_BRIGHT = "\033[1;91m";   // RED
    public static final String GREEN_BOLD_BRIGHT = "\033[1;92m"; // GREEN
    public static final String YELLOW_BOLD_BRIGHT = "\033[1;93m";// YELLOW
    public static final String BLUE_BOLD_BRIGHT = "\033[1;94m";  // BLUE
    public static final String PURPLE_BOLD_BRIGHT = "\033[1;95m";// PURPLE
    public static final String CYAN_BOLD_BRIGHT = "\033[1;96m";  // CYAN
    public static final String WHITE_BOLD_BRIGHT = "\033[1;97m"; // WHITE

    // High Intensity backgrounds
    public static final String BLACK_BACKGROUND_BRIGHT = "\033[0;100m";// BLACK
    public static final String RED_BACKGROUND_BRIGHT = "\033[0;101m";// RED
    public static final String GREEN_BACKGROUND_BRIGHT = "\033[0;102m";// GREEN
    public static final String YELLOW_BACKGROUND_BRIGHT = "\033[0;103m";// YELLOW
    public static final String BLUE_BACKGROUND_BRIGHT = "\033[0;104m";// BLUE
    public static final String PURPLE_BACKGROUND_BRIGHT = "\033[0;105m"; // PURPLE
    public static final String CYAN_BACKGROUND_BRIGHT = "\033[0;106m";  // CYAN
    public static final String WHITE_BACKGROUND_BRIGHT = "\033[0;107m";   // WHITE
}

55

मैंने JCDP ( Java Colored Debug Printer ) नाम से एक लाइब्रेरी बनाई ।

लिनक्स, मैकओएस और विंडोज 10 के लिए, यह एएनएसआई एस्केप कोड का उपयोग करता है जिसका उल्लेख व्हाइटफ़ैंग ने किया है, लेकिन कोड के बजाय शब्दों का उपयोग करके उन्हें सार करता है जो बहुत अधिक सहज है। यह उतना ही आसान हो जाता है:

print("Hello World!", Attribute.BOLD, FColor.YELLOW, BColor.GREEN);

आपके पास जेसीडीपी के जीथब रिपॉजिटरी में कुछ उदाहरण हैं ।


33

निम्नलिखित एनम की कोशिश करें:

enum Color {
    //Color end string, color reset
    RESET("\033[0m"),

    // Regular Colors. Normal color, no bold, background color etc.
    BLACK("\033[0;30m"),    // BLACK
    RED("\033[0;31m"),      // RED
    GREEN("\033[0;32m"),    // GREEN
    YELLOW("\033[0;33m"),   // YELLOW
    BLUE("\033[0;34m"),     // BLUE
    MAGENTA("\033[0;35m"),  // MAGENTA
    CYAN("\033[0;36m"),     // CYAN
    WHITE("\033[0;37m"),    // WHITE

    // Bold
    BLACK_BOLD("\033[1;30m"),   // BLACK
    RED_BOLD("\033[1;31m"),     // RED
    GREEN_BOLD("\033[1;32m"),   // GREEN
    YELLOW_BOLD("\033[1;33m"),  // YELLOW
    BLUE_BOLD("\033[1;34m"),    // BLUE
    MAGENTA_BOLD("\033[1;35m"), // MAGENTA
    CYAN_BOLD("\033[1;36m"),    // CYAN
    WHITE_BOLD("\033[1;37m"),   // WHITE

    // Underline
    BLACK_UNDERLINED("\033[4;30m"),     // BLACK
    RED_UNDERLINED("\033[4;31m"),       // RED
    GREEN_UNDERLINED("\033[4;32m"),     // GREEN
    YELLOW_UNDERLINED("\033[4;33m"),    // YELLOW
    BLUE_UNDERLINED("\033[4;34m"),      // BLUE
    MAGENTA_UNDERLINED("\033[4;35m"),   // MAGENTA
    CYAN_UNDERLINED("\033[4;36m"),      // CYAN
    WHITE_UNDERLINED("\033[4;37m"),     // WHITE

    // Background
    BLACK_BACKGROUND("\033[40m"),   // BLACK
    RED_BACKGROUND("\033[41m"),     // RED
    GREEN_BACKGROUND("\033[42m"),   // GREEN
    YELLOW_BACKGROUND("\033[43m"),  // YELLOW
    BLUE_BACKGROUND("\033[44m"),    // BLUE
    MAGENTA_BACKGROUND("\033[45m"), // MAGENTA
    CYAN_BACKGROUND("\033[46m"),    // CYAN
    WHITE_BACKGROUND("\033[47m"),   // WHITE

    // High Intensity
    BLACK_BRIGHT("\033[0;90m"),     // BLACK
    RED_BRIGHT("\033[0;91m"),       // RED
    GREEN_BRIGHT("\033[0;92m"),     // GREEN
    YELLOW_BRIGHT("\033[0;93m"),    // YELLOW
    BLUE_BRIGHT("\033[0;94m"),      // BLUE
    MAGENTA_BRIGHT("\033[0;95m"),   // MAGENTA
    CYAN_BRIGHT("\033[0;96m"),      // CYAN
    WHITE_BRIGHT("\033[0;97m"),     // WHITE

    // Bold High Intensity
    BLACK_BOLD_BRIGHT("\033[1;90m"),    // BLACK
    RED_BOLD_BRIGHT("\033[1;91m"),      // RED
    GREEN_BOLD_BRIGHT("\033[1;92m"),    // GREEN
    YELLOW_BOLD_BRIGHT("\033[1;93m"),   // YELLOW
    BLUE_BOLD_BRIGHT("\033[1;94m"),     // BLUE
    MAGENTA_BOLD_BRIGHT("\033[1;95m"),  // MAGENTA
    CYAN_BOLD_BRIGHT("\033[1;96m"),     // CYAN
    WHITE_BOLD_BRIGHT("\033[1;97m"),    // WHITE

    // High Intensity backgrounds
    BLACK_BACKGROUND_BRIGHT("\033[0;100m"),     // BLACK
    RED_BACKGROUND_BRIGHT("\033[0;101m"),       // RED
    GREEN_BACKGROUND_BRIGHT("\033[0;102m"),     // GREEN
    YELLOW_BACKGROUND_BRIGHT("\033[0;103m"),    // YELLOW
    BLUE_BACKGROUND_BRIGHT("\033[0;104m"),      // BLUE
    MAGENTA_BACKGROUND_BRIGHT("\033[0;105m"),   // MAGENTA
    CYAN_BACKGROUND_BRIGHT("\033[0;106m"),      // CYAN
    WHITE_BACKGROUND_BRIGHT("\033[0;107m");     // WHITE

    private final String code;

    Color(String code) {
        this.code = code;
    }

    @Override
    public String toString() {
        return code;
    }
}

और अब हम एक छोटा सा उदाहरण देंगे:

class RunApp {
    public static void main(String[] args) {

        System.out.print(Color.BLACK_BOLD);
        System.out.println("Black_Bold");
        System.out.print(Color.RESET);

        System.out.print(Color.YELLOW);
        System.out.print(Color.BLUE_BACKGROUND);
        System.out.println("YELLOW & BLUE");
        System.out.print(Color.RESET);

        System.out.print(Color.YELLOW);
        System.out.println("YELLOW");
        System.out.print(Color.RESET);
    }
}

2
यह उत्तर
ढेर

14

कच्चे भागने के क्रम के साथ यह करने का एक काफी पोर्टेबल तरीका है। Http://en.wikipedia.org/wiki/ANSI_escape_code देखें

[2017-02-20 पर user9999999 के लिए संपादित किया गया]

जावा "कोड्स को हैंडल नहीं करता है", यह सच है, लेकिन जावा आउटपुट जो आपने इसे आउटपुट के लिए कहा था। यह जावा की गलती नहीं है कि विंडोज कंसोल ESC (chr (27)) को केवल एक और ग्लिफ़ (←) के रूप में मानता है।

आपने मुझे विंडोज में बूट किया।  तुम मुझ पर एहसान करते हो, भाई


जो जावा IO परत को रंगों में परिवर्तित नहीं करता है क्योंकि यह काम नहीं करता है। System.out.println ((char) 27 + "[31; 1mERROR" + (char) 27 + "[0m" केवल पैदावार "[31; 1mERROR [0m") जब एक निष्पादन योग्य के रूप में windows cmos.com से चलाया जाता है।
सरल

प्रश्न टैग नहीं किया गया था windows। विंडोज कंसोल कभी भी एएनएसआई-अनुरूप नहीं था जो मुझे याद है।
jcomeau_ictx

लेकिन मुद्दा यह है कि जावा कोड्स को हैंडल नहीं कर रहा है, चाहे cmd.com के समर्थन की परवाह किए बिना
सरल वीडियो

3
संपादित उत्तर देखें। जावा बिल्कुल वैसा ही कर रहा है जैसा कि उसे बताया गया है। समस्या गैर- ANSI- अनुरूप कंसोल है।
jcomeau_ictx

1
मेरे पास एक ही समस्या है
14

7

आप एएनएसआई से बच सकते हैं। मैंने वास्तव में जावा में इस वर्ग को किसी के लिए भी रखा है जो इसके लिए एक सरल समाधान चाहते हैं। यह रंग कोड से अधिक के लिए अनुमति देता है।

https://gist.github.com/nathan-fiscaletti/9dc252d30b51df7d710a

(इससे पोर्ट किया गया: https://github.com/nathan-fiscaletti/ansi-util )

उदाहरण का उपयोग करें:

StringBuilder sb = new StringBuilder();

System.out.println(
    sb.raw("Hello, ")
      .underline("John Doe")
      .resetUnderline()
      .raw(". ")
      .raw("This is ")
      .color16(StringBuilder.Color16.FG_RED, "red")
      .raw(".")
);

6

अगर किसी को जल्दी समाधान की तलाश है, तो निम्न सहायक वर्ग का उपयोग करने के लिए स्वतंत्र महसूस करें :)

public class Log {

    public static final String ANSI_RESET = "\u001B[0m";
    public static final String ANSI_BLACK = "\u001B[30m";
    public static final String ANSI_RED = "\u001B[31m";
    public static final String ANSI_GREEN = "\u001B[32m";
    public static final String ANSI_YELLOW = "\u001B[33m";
    public static final String ANSI_BLUE = "\u001B[34m";
    public static final String ANSI_PURPLE = "\u001B[35m";
    public static final String ANSI_CYAN = "\u001B[36m";
    public static final String ANSI_WHITE = "\u001B[37m";

    //info
    public static void i(String className, String message) {
        System.out.println(ANSI_GREEN + className + " : " + message + ANSI_RESET);
    }

    //error
    public static void e(String className, String message) {
        System.out.println(ANSI_RED + className + " : " + message + ANSI_RESET);
    }

    //debug
    public static void d(String className, String message) {
        System.out.println(ANSI_BLUE + className + " : " + message + ANSI_RESET);
    }

    //warning
    public static void w(String className, String message) {
        System.out.println(ANSI_YELLOW + className + " : " + message + ANSI_RESET);
    }

}

उपयोग:

Log.i(TAG,"This is an info message");

Log.e(TAG,"This is an error message");

Log.w(TAG,"This is a warning message");

Log.d(TAG,"This is a debug message");

ANSI कोड के लिए @ whiteFang34 धन्यवाद


4

कंसोल कंसोल को रंग देने का सबसे अच्छा तरीका ANSI एस्केप कोड का उपयोग करना है । पाठ रंग के अलावा, ANSI एस्केप कोड पृष्ठभूमि रंग, सजावट और बहुत कुछ की अनुमति देता है।

यूनिक्स

यदि आप स्प्रिंगबूट का उपयोग करते हैं, तो टेक्स्ट रंग के लिए एक विशिष्ट एनम है: org.springframework.boot.ansi.AnsiColor

जानसी पुस्तकालय थोड़ा और अधिक उन्नत है (सभी एएनएसआई एस्केप कोड फोंक्शन्स का उपयोग कर सकते हैं), एक एपीआई प्रदान करता है और विंडोज के लिए एक समर्थन है जेएनए का उपयोग करके ।

अन्यथा, आप मैन्युअल रूप से अपने रंग को परिभाषित कर सकते हैं, जैसा कि दिखाया गया है अन्य प्रतिक्रियाएं हैं।

विंडोज 10

विंडोज 10 (चूंकि 10.0.10586 - एनओवी 2015 का निर्माण हुआ है) एएनएसआई एस्केप कोड ( एमएसडीएन प्रलेखन ) का समर्थन करता है, लेकिन यह डिफ़ॉल्ट रूप से सक्षम नहीं है। इसे सक्षम करने के लिए:

  • SetConsoleMode API के साथ , ENABLE_VIRTUAL_TERMINAL_PROCESSING (0x0400)ध्वज का उपयोग करें । जानसी इस विकल्प का उपयोग करता है।
  • यदि SetConsoleMode API का उपयोग नहीं किया जाता है, तो HKEY_CURRENT_USER\Console\VirtualTerminalLevelएक dword बनाकर वैश्विक रजिस्ट्री कुंजी को बदलना और ANSI प्रसंस्करण के लिए इसे 0 या 1 पर सेट करना संभव है: "VirtualTerminalLevel"=dword:00000001

विंडोज 10 से पहले

Windows कंसोल ANSI रंगों का समर्थन नहीं करता है। लेकिन कंसोल का उपयोग करना संभव है जो करता है।


1

रंगों के साथ टेक्स्ट प्रिंट करने के लिए कलर फंक्शन का उपयोग करना

कोड:

enum Color {

    RED("\033[0;31m"),      // RED
    GREEN("\033[0;32m"),    // GREEN
    YELLOW("\033[0;33m"),   // YELLOW
    BLUE("\033[0;34m"),     // BLUE
    MAGENTA("\033[0;35m"),  // MAGENTA
    CYAN("\033[0;36m"),     // CYAN

    private final String code

    Color(String code) {
        this.code = code;
    }

    @Override
    String toString() {
        return code
    }
}

def color = { color, txt ->
    def RESET_COLOR = "\033[0m"
    return "${color}${txt}${RESET_COLOR}"
}

उपयोग:


test {
    println color(Color.CYAN, 'testing')
}

0

हड़ताल करने के लिए:

public static final String ANSI_STRIKEOUT_BLACK = "\u001B[30;9m";
public static final String ANSI_STRIKEOUT_RED = "\u001B[31;9m";
public static final String ANSI_STRIKEOUT_GREEN = "\u001B[32;9m";
public static final String ANSI_STRIKEOUT_YELLOW = "\u001B[33;9m";
public static final String ANSI_STRIKEOUT_BLUE = "\u001B[34;9m";
public static final String ANSI_STRIKEOUT_PURPLE = "\u001B[35;9m";
public static final String ANSI_STRIKEOUT_CYAN = "\u001B[36;9m";
public static final String ANSI_STRIKEOUT_WHITE = "\u001B[37;9m";

-1

जावा में लाल रंग में किसी भी पाठ को मुद्रित करने के लिए सबसे अच्छा समाधान है:

System.err.print("Hello World");

"डाउनवोट" मेरा नहीं है - लेकिन, ऐसे अन्य उत्तर हैं जो ओपी के प्रश्न प्रदान करते हैं, और उन्हें कुछ समय पहले पोस्ट किया गया था। उत्तर पोस्ट करते समय देखें: मैं एक अच्छा उत्तर कैसे लिखूं? , कृपया सुनिश्चित करें कि आप या तो एक नया समाधान जोड़ सकते हैं, या काफी बेहतर स्पष्टीकरण, विशेष रूप से पुराने प्रश्नों का उत्तर देते समय।
help-info.de

7
@iSahil यह शायद इसलिए कम हो गया क्योंकि मानक त्रुटि को लिखने से स्पष्ट रूप से कुछ भी रंग नहीं होता है। कई आईडीई और कंसोल त्रुटि संदेशों की व्याख्या करेंगे और उन्हें लाल या समान में प्रिंट करेंगे, लेकिन यह ऐसा कुछ नहीं है जिस पर आप भरोसा कर सकते हैं।
डेविड

1
हालांकि यह ऊपर पूछे गए सवाल का सीधा जवाब नहीं था, यह वह जवाब था जिसे मैं "रेड कंसोल में जावा प्रिंट" के लिए खोज रहा था। इस प्रकार, मुझे ऐसा लग रहा है कि इस पृष्ठ पर इसकी जगह है।
मौड

-2

यदि आप कोटलिन (जो जावा के साथ मूल रूप से काम करता है) का उपयोग करते हैं, तो आप इस तरह की एक पहेली बना सकते हैं:

enum class AnsiColor(private val colorNumber: Byte) {
    BLACK(0), RED(1), GREEN(2), YELLOW(3), BLUE(4), MAGENTA(5), CYAN(6), WHITE(7);

    companion object {
        private const val prefix = "\u001B"
        const val RESET = "$prefix[0m"
        private val isCompatible = "win" !in System.getProperty("os.name").toLowerCase()
    }

    val regular get() = if (isCompatible) "$prefix[0;3${colorNumber}m" else ""
    val bold get() = if (isCompatible) "$prefix[1;3${colorNumber}m" else ""
    val underline get() = if (isCompatible) "$prefix[4;3${colorNumber}m" else ""
    val background get() = if (isCompatible) "$prefix[4${colorNumber}m" else ""
    val highIntensity get() = if (isCompatible) "$prefix[0;9${colorNumber}m" else ""
    val boldHighIntensity get() = if (isCompatible) "$prefix[1;9${colorNumber}m" else ""
    val backgroundHighIntensity get() = if (isCompatible) "$prefix[0;10${colorNumber}m" else ""
}

और फिर उपयोग इस प्रकार है: (सभी रंगों के लिए अलग-अलग शैलियों के नीचे कोड)

val sampleText = "This is a sample text"
enumValues<AnsiColor>().forEach { ansiColor ->
    println("${ansiColor.regular}$sampleText${AnsiColor.RESET}")
    println("${ansiColor.bold}$sampleText${AnsiColor.RESET}")
    println("${ansiColor.underline}$sampleText${AnsiColor.RESET}")
    println("${ansiColor.background}$sampleText${AnsiColor.RESET}")
    println("${ansiColor.highIntensity}$sampleText${AnsiColor.RESET}")
    println("${ansiColor.boldHighIntensity}$sampleText${AnsiColor.RESET}")
    println("${ansiColor.backgroundHighIntensity}$sampleText${AnsiColor.RESET}")
}

यदि विंडोज पर चल रहा है जहां ये एएनएसआई कोड समर्थित नहीं हैं, तो isCompatibleचेक खाली स्ट्रिंग के साथ कोड को बदलकर मुद्दों से बचता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.