【问题标题】:Java bolding and underlining output [duplicate]Java粗体和下划线输出[重复]
【发布时间】:2016-09-29 17:53:26
【问题描述】:

我有这个代码

public static void main(String[] args)
{
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter any sentence.");
    String line = keyboard.nextLine();
    String s1 = line;
    String[] sp = s1.split(" ");
    System.out.println("second word is " + sp[1]);
}

它打印出第二个单词。所以如果你输入

你好,我正在练习java

它会输出

第二个字是我

有什么方法或方法可以让它打印出sp[1] 看起来粗体和下划线或任何东西让它突出?输出将是

第二个字是

【问题讨论】:

标签: java string java.util.scanner


【解决方案1】:

您可以在要输出的字符串之前使用 ANSI 转义序列。这将适用于大多数像操作系统这样的 linux。

System.out.println("second word is \033[0;1m" + sp[1]);

【讨论】:

  • 如何停止粗体表示我想在 sp[1]+ "." 之后添加更多单词
  • @Javabeginner 您可能会发送错误的转义序列。例如System.out.println("second word is \033[0;1m" + textInBold + "\033[0;0m" + textInBold);
【解决方案2】:

刚刚在 Intellij 上进行了测试,它可以工作。这是给下属的:

    System.out.println("second word is \033[0;4m" + sp);

【讨论】:

  • 这对我有用,在我的情况下,"\033[1;4mThe-String-To-Format\033[0m" 使文本变为粗体并加下划线。
【解决方案3】:

这在很大程度上取决于您要输出到的系统的功能。在大多数情况下,您将只有纯文本输出。有时,终端/控制台输出将支持ANSI escape codesHTML。特别是 bash 终端和 Windows 10(阈值 2)终端支持 ANSI 转义码。

使用ConEmu,可以自定义大多数版本的窗口以支持ANSI转义码。

在少数有限的情况下,您可能会通过控制台使用专门的标记语言。

【讨论】:

  • 你可以这样做,但是有一个内置了所有这些的 java 库。[来源] (github.com/fusesource/jansi)
  • @CarterBrainerd 它看起来像一个不错的库。 github 上有许多晦涩但有用的库,并非所有这些库都是通过口耳相传的方式传播的。谢谢!
猜你喜欢
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
  • 2011-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多