gpt4 book ai didi

java - 以两种不同的方法读取相同的输入两次

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:13:15 25 4
gpt4 key购买 nike

我有两个不同的方法,在两个不同的类中。我希望他们都读取同一行输入并检查不同的内容。一个查找指令,例如“给我冲杯咖啡”,另一个查找不同的关键字,例如“请”和“谢谢”(这些会影响程序对我的响应):

public class Class1(){

public void PleaseAndThankYous(){
Scanner scanner1 = new Scanner(System.in)
input1 = Scanner1.nextLine();

if (input1.contains//blah blah blah blah...


public class Intructions(){

public void Method2(){
Scanner scanner2 = new Scanner(System.in)
input2 = Scanner2.nextLine();

if (input1.contains//blah blah blah blah...

然后我在主字符串中调用它们,只是为了测试它们:

System.out.println("this is a test, ask me something")
obj.PleaseAndThankYous();
obj.Intructions();

我的控制台打印出来是这样的:

this is a test, ask me something  //(out put string)
make me a coffee please //PleaseAndThankYous() reads this
make me a coffee please // Intructions() reads this;
Making you a coffee, Sir. // (response)

我明白发生了什么,但我想不出其他方法。我也尝试过使用相同的扫描仪,使用不同的字符串,但它仍然没有用。我怎样才能使这两种方法都读取我的第一行输入,而我不必将所有内容都输入两次?谢谢!

最佳答案

现在你有两个这样的方法:

public void method() {
Scanner scanner = new Scanner(System.in)
input = Scanner.nextLine();

if (input.contains //blah blah blah blah...

改变它们,使它们产生争论:

public void method(String input) {        
if (input.contains //blah blah blah blah...

然后在您的 main 方法中传递您希望他们阅读的输入,而不是:

method1();
method2();

使用:

Scanner in = new Scanner(System.in);
String input = Scanner.nextLine();
method1(input);
method2(input);

基本上,不真正支持从 Scanner 多次获取相同的字符串。但是您可以非常轻松地获取一次该值,然后通过将其作为参数传递来在不同的地方多次使用它。

这在其他几个方面也更好 - 它会提高性能(因为你只声明一个扫描器并从中读取一次)并且它使你的代码更加模块化,因为你可以有一个类用于处理输入,另一个类用于处理它,而不是在多个地方同时进行。

关于java - 以两种不同的方法读取相同的输入两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40599895/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com