java - 仅根据用户输入的一部分创建字符串

标签 java string java.util.scanner

我现在正在进行的项目是一个交互式项目。它专注于学习语言。我希望用户能够输入数据,并且控制台根据用户所写的内容以设定的句子进行响应。

我被困在“我的名字是”。我整个早上都在研究 scanner.skip 函数,但似乎找不到我需要的关于如何让它做我想做的事情的信息。我希望用户写“我的名字是[名字]”。然后,我希望控制台将此答案拆分为两个单独的字符串:“我的名字是”和“[名字]”。

我希望能够检查“我的名字是”是否与“我的名字是”完全匹配,同时忽略任何“[名字]”。不过,我希望稍后能够访问“[name]”,以便控制台能够使用用户输入的名称与用户对话。我将如何使用 scanner.skip 函数来执行此操作?这是否是正确的函数?

最佳答案

我会使用子字符串:

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line = br.readLine();
        System.out.printf("line: '%s'%n", line);
        if (line.startsWith("My name is ")) {
            String name = line.substring("My name is ".length());
            System.out.printf("name: '%s'%n", name);
        } else {
            // print error or something
            System.out.println("Error: line has to start with 'My name is ' string.");
        }
    }
}

使用BufferedReader,因为它更快,并且在这种情况下,它对于以后的处理并不重要......

Ideone link

关于java - 仅根据用户输入的一部分创建字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34244809/

相关文章:

java - quartz 调度程序如何工作?

java - 验证请求 - 数据库和 Java 如何存储和处理时区?

python - 格式 () : ValueError: Precision not allowed in integer format specifier

javascript - JS : search for specific string in textarea

java - 为什么用户输入的 double 不接受与常规 double 相同的参数?

java - 选择每个项目的最新日期并在 sqlite 中获取总和

java - 如何自动化从大型数据库查询的测试? (导入或创建)

javascript - 在 3 位数字 block 中格式化字符串

java - 重新定义扫描仪的非数字识别?

java - java中.split()方法如何工作?