首页 课程 师资 教程 报名

Java字符串输入方法

  • 2022-07-18 13:14:11
  • 2562次 动力节点

Java教程中,大家会学到Java字符串输入方法,有多种方法可以在 Java 中获取字符串输入。在本节中,我们将讨论如何在 Java 中接受 String 输入。在 Java 中有以下几种获取字符串输入的方法:

通过使用 Java Scanner 类

通过使用 Java BufferedReader 类

通过使用命令行参数

通过使用 Java Scanner 类

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 类

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 的元素连接起来再次构建字符串,如上面的输出所示。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交