看看我的代码,我怎样才能使文本“输入3个课程代码集合,每行一个集合”以及“大小”和“排序”具有不同的文本样式和下划线,以便于阅读?预先谢谢你。
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();
}
}
答案 0 :(得分:0)
如果您要问如何在控制台文本下划线,简短的答案是您不能,但是这个问题"How to print underlined string in console output in java"可能会有所帮助。
答案 1 :(得分:0)
这里遇到的是控制台输出的限制。
控制台输出(通常)由模拟1970年代/ 1980年代经典(硬件)终端的应用程序呈现。这些设备通过解释输出流中的字节(例如转义序列)来执行以下操作:
问题在于不同的硬件终端具有不同的功能,以及不同的(非标准)解释转义序列的方式。最终,DEC VT100终端的功能和一些标准化出现了整个行业的融合。结果是ANSI / VT100终端控制转义序列:
随着IBM PC(及类似产品)的问世,硬件终端已过时,并由操作系统提供的终端/控制台仿真器软件代替。但是,某些OS模拟器软件仍继续实施“ ANSI / VT100”系统。
这将如何帮助您?
好吧……如果您的控制台程序/仿真器支持VT100序列,那么您应该能够通过将适当的序列写入标准输出中来执行诸如下划线之类的操作。但是,如果执行此操作,并且应用程序的用户在不支持VT100的控制台上运行它,那么结果将是一团糟。
标准的Java SE库不支持这种方法,但是有一些第三方的替代方法。参见What's a good Java, curses-like, library for terminal applications?
总的来说,做这种事情是可能,但这是很多工作。
对于您而言,尝试这样做是一个坏主意,因为您对应用程序的运行环境没有任何发言权。 (在标记时,由您的老师指导!)