我正在Netbeans中运行一个控制台应用程序,它提示用户输入,验证输入,并在输入验证失败并重新提示时输出错误消息。我设置的错误消息是按this answer的红色文本打印。它完美无缺,除了一个问题。
在程序要求第二个输入后,如果第一个输入无效,则该错误消息后面的用户输入与错误消息的颜色相同。
例如,用户输入了无效输入。他们在错误消息后再次输入输入。它应该以默认文本颜色打印(我的版本为黑色),但它会打印为红色文本。
有没有办法在我的文本中关闭ANSI颜色代码的应用?各种结束标签?
代码:
public static void main(String[] args)
{
//Initialize keyboard input
Scanner keyboard = new Scanner(System.in);
//Print prompt to screen
System.out.println("User input prompt goes here: ");
//Store user input
String inputGot = keyboard.nextLine();
//Print a dummy error message
System.out.println("\u001B[31m" + "This is an error of some sort. "
+ "Please re-enter input: ");
//Rerun input prompt (this would be looped in the real program)
System.out.println("User input prompt goes here: ");
//Store user input
inputGot = keyboard.nextLine();
}
答案 0 :(得分:2)
无论您希望红色文本停止在何处,都需要插入ANSI转义序列以关闭所有ANSI属性:"\u001b[0m"
。
请参阅此内容,了解您可能需要/需要的其他内容。 https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes