【问题标题】:Print strings on terminal with color在终端上用颜色打印字符串
【发布时间】:2021-12-26 11:06:23
【问题描述】:

谁能告诉我如何在 Java 中用颜色在终端上打印我的字符串?如果有为此目的的图书馆,请介绍给我,我宁愿使用一个也不愿自己做这项工作:)

提前致谢。

【问题讨论】:

标签: java terminal


【解决方案1】:

是的,有。我在 Java 中实现了一个名为 JTerminal 的库,用于在终端上打印自定义输出,包括具有所需前景和背景颜色的 print 和 println。支持8位256色(XTerm代码)。

这是一个易于使用的库。要使用您想要的颜色打印字符串,您只需静态调用 printprintln 方法:

import io.github.shuoros.jterminal.JTerminal;
import io.github.shuoros.jterminal.ansi.Color;

public class Main {

    public static void main(String[] args) {
        // Prints "Hello World!" with orange foreground color
        JTerminal.println("Hello World!", Color.ORANGE);
        // Prints "Hello World!" with orange foreground and white background color
        JTerminal.println("Hello World!", Color.ORANGE, Color.WHITE);
    }
}

您还可以通过一行代码为您的字符串在不同范围内用不同的颜色着色:

import java.util.List;

import io.github.shuoros.jterminal.JTerminal;
import io.github.shuoros.jterminal.ansi.Color;
import io.github.shuoros.jterminal.util.TextEntity;

public class Main {

    public static void main(String[] args) {
        // Prints ">JTerminal:~ 1.0.2" with the colors of its logo
        JTerminal.println(">JTerminal:~ 1.0.2", List.of(//
                new TextEntity(0, 1, Color.DARK_SEA_GREEN_7), //
                new TextEntity(1, 10, Color.ORANGE), //
                new TextEntity(10, 12, Color.DARK_SEA_GREEN_7), //
                new TextEntity(12, 18, Color.WHITE)));
    }
}

要将 JTerminal 添加到您的 maven 或 gradle 项目中,您可以添加其依赖项:

Maven

<!-- https://mvnrepository.com/artifact/io.github.shuoros/JTerminal -->
<dependency>
    <groupId>io.github.shuoros</groupId>
    <artifactId>JTerminal</artifactId>
    <version>1.0.2</version>
</dependency>

分级

// https://mvnrepository.com/artifact/io.github.shuoros/JTerminal
implementation group: 'io.github.shuoros', name: 'JTerminal', version: '1.0.2'

前往JTerminal github repository 获取一些示例。

【讨论】:

  • 嗯,非常感谢,但是我怎样才能知道你的库支持哪些颜色呢?
  • @MaximFedorov 正如我在回答中提到的,JTerminal 支持 8 位 256 色。要查看所有支持的颜色,请阅读color docs
【解决方案2】:

控制台输出画面默认为黑色或白色。

如果您想在输出屏幕上突出显示某些文本,可以使用 ANSI 颜色代码并突出显示特定文本。

System.out.println(ANSI_COLORNAME + "This text is colored" + ANSI_RESET);

【讨论】:

    猜你喜欢
    • 2016-05-10
    • 2014-05-18
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    相关资源
    最近更新 更多