更新时间:2022-07-18 13:14:11 来源:极悦 浏览2435次
在Java教程中,大家会学到Java字符串输入方法,有多种方法可以在 Java 中获取字符串输入。在本节中,我们将讨论如何在 Java 中接受 String 输入。在 Java 中有以下几种获取字符串输入的方法:
通过使用 Java Scanner 类
通过使用 Java BufferedReader 类
通过使用命令行参数
Scanner类在java.util包中定义,用于获取用户的输入。Scanner 类提供以下两种方法来获取用户的输入。
Scanner.nextLine() 方法
Scanner.next() 方法
让我们讨论每个提到的从用户那里获取输入的方法。
1. Scanner.nextLine() 方法
nextLine ()方法读取输入,直到行终止并将光标移动到下一行。nextLine()方法的语法是:
句法:
公共字符串 nextLine()
该方法不接受任何参数。它返回被跳过的字符串。如果该方法找不到要读取的行,则该方法抛出NoSuchElementException。
文件名:StringInputExample.java
// 导入扫描器类
导入 java.util.Scanner;
公共类 StringInputExample
{
// 主要方法
公共静态无效主要(字符串argvs [])
{
// 保存用户输入的字符串
字符串 str;
// 创建一个 Scanner 类的对象
扫描仪 scnr = new Scanner(System.in);
System.out.print("请输入一个字符串:"); // 调用方法 nextLine()
// 从用户那里获取输入
str = scnr.nextLine();
// 换行
System.out.println();
// 显示输入的字符串
System.out.print("用户输入的字符串为:" + str );
}
}
输出:
说明:显示Enter a string消息后,光标在控制台上等待用户输入字符串。nextLine()方法读取直到用户点击回车并返回读取的内容,这些内容由变量str捕获。输出中显示了相同的读取字符串。请注意,点击回车按钮表明该行已终止。
2.Scanner.next() 方法
next()方法读取输入,直到行终止或遇到空白。nextLine()和next()方法的主要区别在于后者在遇到空白时终止,而前者仅在按下 enter 时终止。next()方法的语法是:
句法:
公共字符串下一个()
回报:
返回读取的行。
该方法不接受任何参数。它返回被跳过的字符串。如果该方法找不到要读取的行,则该方法抛出NoSuchElementException。
文件名:StringInputExample1.java
// 导入扫描器类
导入 java.util.Scanner;
公共类 StringInputExample1
{
// 主要方法
公共静态无效主要(字符串argvs [])
{
// 保存用户输入的字符串
字符串 str;
// 通过创建对象来实例化 Scanner 类
扫描仪 scnnr = new Scanner(System.in);
System.out.print("请输入一个字符串:");
// 调用方法 next()
// 从用户那里获取输入
str = scnnr.next();
// 换行
System.out.println();
// 显示输入的字符串
System.out.print("用户输入的字符串为:" + str );
}
}
输出:
说明:用户输入 My Name is Khan。但是,在遇到“我的”这个词之后是空白。因此,其余三个字没有被读取,同样可以通过观察输出来确认。
Java BufferedReader 类用于读取字符流。该类接受InputStreamReader类的对象。因此,需要创建InputStreamReader类的构造函数,并将其对象作为参数传递给 BufferedReader 类。BufferedReader类具有readLine()方法来获取用户的输入。readLine()方法一次读取一行。
句法:
公共字符串 readLine()
它返回用户输入的行。它不包含任何行终止字符,如果已到达流的末尾,则为 null。
让我们观察下面的程序来了解BufferedReader类是如何用于从用户那里获取输入的。
文件名:StringInputExample2.java
// 导入语句
导入 java.io.BufferedReader;
导入 java.io.IOException;
导入 java.io.InputStreamReader;
公共类 StringInputExample2
{
// 主要方法
公共静态 void main(String argvs[]) 抛出 IOException
{
字符串 str;
// 创建 InputStreamReader 类的对象
InputStreamReader inputStrObj = new InputStreamReader(System.in);
// 创建 BufferedReader 类的对象
BufferedReader bufrObj = new BufferedReader(inputStrObj);
System.out.print("请输入一个字符串:");
// 调用方法 readLine()
// 从用户那里获取输入
str = bufrObj.readLine();
// 换行
System.out.println();
// 显示输入的字符串
System.out.print("用户输入的字符串为:" + str );
}
}
输出:
说明:在InputStreamReader类的构造函数中,传递了System.in 。之所以这样做,是因为输入是从键盘获取的。在InputStreamReader类的帮助下, BufferedReader类存储用户通过键盘给出的输入。
命令行参数存在于 main方法(String argvs[]) 中。String argvs[] 是一个字符串数组,它接受一行作为输入。让我们借助以下Java程序来了解命令行参数的用法。
文件名:StringInputExample3.java
公共类 StringInputExample3
{
// 主要方法
公共静态无效主要(字符串argvs [])
{
// 存储String数组argvs的元素
字符串 str = "";
// 计算字符串数组的大小
整数大小 = argvs.length;
// 循环遍历字符串数组 argvs 的元素
for(int i = 0; i < 大小; i++)
{
// 将String数组转换为字符串
str = str + argvs[i] + "";
}
// 显示输入的字符串
System.out.print("用户输入的字符串为:" + str );
}
}
输出:
说明:Java命令行参数是在使用java命令执行程序时放入的。字符串数组 argvs[] 中的元素数量由输入字符串中存在的空格决定。在输入字符串(“My name is Khan”)中,存在三个空格。因此,数组 argvs 中存在四个字符串元素(“My”、“name”、“is”、“Khan”)。然后使用 for 循环解析数组 argvs,然后将数组 argvs 的元素连接起来再次构建字符串,如上面的输出所示。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习