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 技术。

更新于:2023年7月24日

544 次浏览

开启您的职业生涯

完成课程后获得认证

开始
广告