VS Code 中用于 Java 竞赛编程的设置:快速 I/O 和代码片段
简介
本教程将指导您完成在 Visual Studio Code (VS Code) 中设置 Java 开发环境的过程,并介绍一些用于竞赛编程的有用工具和技术,包括快速输入/输出 (I/O) 技术和有用的代码片段。
在 VS Code 中设置 Java 开发环境
要在 VS Code 中开始使用 Java 编程,请按照以下步骤操作:
安装 Java 扩展包 - 打开 VS Code 并点击左侧边栏上的正方形图标或使用快捷键 Ctrl+Shift+X(Windows/Linux)或 Cmd+Shift+X(Mac)导航到扩展视图。搜索“Java Extension Pack”并安装它。此扩展包包含 Java 开发的必要工具。
创建 Java 项目 - 现在,让我们创建一个新的 Java 项目。按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(Mac)打开命令面板。键入“Java: Create Java Project”并选择它。在您的计算机上为项目选择合适的位置并为其命名。
运行您的第一个 Java 代码 - 打开 src 文件夹内的自动生成的 Java 类文件 (App.java),您应该会看到一个简单的“Hello, World!”程序:
示例
public class App { public static void main(String[] args) { System.out.println("Hello, World!"); } }
编译和运行 - 您可以使用 VS Code 中的集成终端来编译和运行 Java 代码。选择“查看”→“终端”或使用快捷键 Ctrl + 反引号(Windows/Linux)或 Cmd + 反引号(Mac)打开集成终端。在终端中,使用以下命令:
javac Main.java java Main
输出
Hello, World!
现在,让我们探索一些可以提升竞赛编程体验的技术。
竞赛编程中的快速 I/O
方法 1
在竞赛编程中,高效的输入/输出 (I/O) 操作会显著影响程序的性能。让我们探索使用 BufferedReader 和 StringTokenizer 的快速 I/O 技术。
导入所需的类 - 在 Java 类文件的开头添加以下导入语句:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer;
设置输入读取器 - 声明一个 BufferedReader 对象以从控制台读取输入,并在 main 方法中按如下方式初始化它:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
读取输入 - 要从一行读取以空格分隔的整数,请使用 StringTokenizer 类,如下所示:
StringTokenizer st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken());
设置输出写入器 - 声明一个 StringBuilder 对象以有效地构建输出,并在 main 方法中按如下方式初始化它:
StringBuilder sb = new StringBuilder();
写入输出 - 不要使用 System.out.println(),而是将输出字符串追加到 StringBuilder 对象:
sb.append("Result: ").append(result).append('\n');
刷新输出 - 最后,在处理所有测试用例后,使用 System.out 打印输出并刷新它:
System.out.print(sb); System.out.flush();
示例
让我们来看一个计算两个整数之和的示例:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class App{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); int sum = a + b; StringBuilder sb = new StringBuilder(); sb.append("Sum: ").append(sum).append('\n'); System.out.print(sb); System.out.flush(); } }
输入
输出
方法 2
或者,您可以使用两个文件进行输入,输出更容易复制和粘贴较长的输入,并将输出写入单独的文件,而不是使用控制台/终端窗口。要使用此技术,请按照以下步骤操作:
在与 Java 程序相同的文件夹中创建两个文件,一个用于读取输入,另一个用于写入输出。您可以将这些文件放在单独的文件夹中,请确保在程序中使用文件的正确路径。
声明一个 BufferedReader 对象以从输入文件读取输入,并在 main 方法中按如下方式初始化它:
BufferedReader reader = new BufferedReader(new FileReader(“input.txt”));
声明一个 PrintStream 对象以将输出写入输出文件,并在 main 方法中按如下方式初始化它:
PrintStream printStream = new PrintStream(new FileWriter(“output.txt”));
不要使用 System.out.println(),而是使用 PrintStream 对象将输出写入输出文件:
printStream.print("Product: " + product);
示例
让我们来看另一个计算两个整数乘积的示例:
import java.io.BufferedReader; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.PrintStream; public class App { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new FileReader("input.txt")); int num1 = Integer.parseInt(reader.readLine()); int num2 = Integer.parseInt(reader.readLine()); reader.close(); int product = num1 * num2; PrintStream printStream = new PrintStream(new FileOutputStream("output.txt")); printStream.print("Product: " + product); printStream.close(); } }
输出
提高生产力的代码片段
您可以在 VS Code 中使用代码片段来提高在 Java 中编程时的生产力。代码片段允许您只需几个按键即可快速插入常用的代码模板。
方法 1
您可以按如下方式使用 Java Snippets VS Code 扩展:
安装 Java 代码片段 - 在 VS Code 中打开扩展视图(Ctrl+Shift+X 或 Cmd+Shift+X),然后搜索“Java Snippets”。安装“Visual Studio Code Team”提供的扩展。
插入代码片段 - 要插入代码片段,请键入代码片段关键字,然后从 IntelliSense 下拉列表中选择所需的代码片段。例如,键入 main 将显示“Java Main Method”代码片段。按 Enter 将代码片段插入当前光标位置。
假设您经常需要创建 for 循环。无需键入整个 for 循环结构,您可以使用 for 代码片段。键入 for 并从 IntelliSense 下拉列表中选择“Java For Loop”代码片段。
语法
在 Java 中创建 for 循环的语法如下:
for (initialization; condition; update) { // code to be executed }
代码片段将插入如下:
上面的代码片段示例为 length 提供了占位符,您可以将其替换为您想要的循环长度。这在创建重复的代码结构时可以节省您的时间和精力。
方法 2
VS Code 为创建和使用您的代码片段提供了便利的支持。让我们为二分查找算法创建一个自定义代码片段。
创建代码片段 - 打开 VS Code 并通过转到“文件”>“首选项”>“配置用户代码片段”导航到用户代码片段。选择语言“Java”并添加以下代码片段:
"Binary Search": { "prefix": "binarysearch", "body": [ "int low = 0;", "int high = ${1:array.length} - 1;", "while (low <= high) {", " int mid = low + (high - low) / 2;", " if (array[mid] == ${2:target}) {", " // Target found", " break;", " } else if (array[mid] < ${2:target}) {", " low = mid + 1;", " } else {", " high = mid - 1;", " }", "}" ], "description": "Binary search algorithm" }
使用代码片段 - 在您的 Java 代码文件中,键入代码片段前缀 binarysearch 并按 Tab 展开它。修改必要的占位符并将代码片段用作二分查找实现的起点。
结论
在本教程中,我们介绍了在 VS Code 中为竞赛编程设置 Java 开发环境的过程。我们学习了如何在 VS Code 中配置 JDK、创建 Java 项目和执行 Java 代码。此外,我们还探索了使用 BufferedReader 和 StringTokenizer 进行高效输入/输出操作以及使用 PrintStream 快速复制输入的快速 I/O 技术。