用于存储和排序用户输入的Java LinkedList.请协助



查看我的代码,如何让文本"输入3个课程代码集合,每行一个集合"以及"大小"one_answers"排序"有不同的文本样式和下划线,以便更容易阅读?提前谢谢。

public static void main(String[] args) {
LinkedList<String> ListofCourses = new LinkedList<>();
Scanner course = new Scanner(System.in);
String line;
String[] codes;
System.out.println("Ron's Copy");
System.out.println("nEnter 3 collections of course codes one collection per line");
/**The 'for' statement is used here to output the user input of courses 
and loop back to have the user enter another set of courses until the user
input has been completed 3 times successfully */
for (int i = 0; i < 3; i++) {
line = course.nextLine();
codes = line.split(" ");
//This statement adds input from sets
ListofCourses.addAll(Arrays.asList(codes));
//Sorting LinkedList with Collections.sort() method
Collections.sort(ListofCourses);
/*
* The system.out.print statement print out the courses in a sorted
* method and then loops back again to have the user input
*/
System.out.print("nSize: " + ListofCourses.size() + " Sorted: ");
//The statements below will print sorted courses that were inputted by the user
for (int r = 0; r < ListofCourses.size(); r++) {
System.out.print(ListofCourses.get(r) + " ");
}
System.out.println();
//clear the list so that next iteration gets a fresh empty list
ListofCourses.clear();
}
}

如果你问如何在控制台文本中加下划线,简单的答案是你不能,但这个问题"如何在java控制台输出中打印带下划线的字符串"可能会有所帮助。

您在这里遇到的是控制台输出的限制。

控制台输出(通常(由模拟1970年代/1980年代的经典(硬件(终端的应用程序呈现。这些设备通过解释输出流中的字节(例如转义序列(来完成以下操作:

  • 在(24x80(屏幕上移动光标
  • 块擦除字符
  • 在"白上黑"one_answers"黑上白"之间切换
  • 更改字符或背景颜色(高级!(
  • 字符下划线或三振(高级!(
  • 备用字体切换(高级!(
  • 等等

问题是不同的硬件终端具有不同的功能,以及解释转义序列的不同(非标准(方式。最终,在DEC VT100终端的功能和一些标准化方面,出现了一些全行业的趋同。结果是ANSI/VT100终端控制退出序列:

  • http://wiki.bash-hackers.org/scripting/terminalcodes
  • http://www.termsys.demon.co.uk/vtansi.htm

随着IBM PC(及类似产品(的出现,硬件终端变得过时,取而代之的是操作系统提供的终端/控制台模拟器软件。然而,一些操作系统模拟器软件继续实现"ANSI/VT100"系统。

这对你有什么帮助?

嗯。。。如果您的控制台程序/模拟器支持VT100序列,那么您应该能够通过在标准输出中写入适当的序列来执行下划线之类的操作。但是,如果您这样做,并且应用程序的用户在不支持VT100的控制台上运行它,那么结果将是一团糟。

标准的JavaSE库不支持这种东西,但也有一些第三方的替代方案;请参阅What';对于终端应用程序来说,这是一个很好的Java库吗?


总之,做这种事情是可能的,但这是一项艰巨的工作。

在您的情况下,尝试这样做是一个坏主意,因为您对运行应用程序的环境没有任何发言权。(标记时由您的导师提供!(

最新更新