搜索数组以匹配用户输入(java)

goucqfw6  于 2021-06-26  发布在  Java
关注(0)|答案(3)|浏览(238)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

两天前关门了。
改进这个问题
我想知道如何搜索这个数组来匹配用户的答案,显然第8行是不正确的,这就是我迷路的地方。

public static void THELASTQ() {
    Scanner scanner = new Scanner(System.in);
    String [] bands = {"guantanamo baywatch", "levitation room", "allah las", "los pesos", "tijuana panthers"};

    System.out.println("give me a band name.");
    String bandInput = scanner.nextLine();

    if(bandInput.contains(bands))
    {
        System.out.print("whats their best song?");
        String bestSong = scanner.nextLine();
        System.out.println("I love " + bestSong);
    }

    return;
}
ef1yzkbh

ef1yzkbh1#

我认为这个问题是因为条件不正确
我建议使用以下代码

Scanner scanner = new Scanner(System.in);
    String [] bands = {"guantanamo baywatch", "levitation room",
                       "allah las", "los pesos", "tijuana panthers"};

    System.out.println("give me a band name.");
    String bandInput = scanner.nextLine();

    for(String userInput : bands){
        if(bandInput.equals(userInput)){
           System.out.print("The input was found: "+userInput);
        }
    }
ztmd8pv5

ztmd8pv52#

解决方案

因为在这里使用数组,所以包含将不起作用。必须遍历数组并检查每个项是否等于用户输入的字符串。
为了进行比较,你应该使用 .equal() 字符串方法

package hall;

import java.text.DecimalFormat;
import java.util.Arrays;

import java.util.Scanner;
public class H {
    public static void main(String[] args){
        H.THELASTQ();
    }
    @SuppressWarnings("unlikely-arg-type")
    public static void THELASTQ() {
        Scanner scanner = new Scanner(System.in);
        String[] bands = {"guantanamo baywatch", "levitation room", "allah las", "los pesos", "tijuana panthers"};

        System.out.println("give me a band name.");
        String bandInput = scanner.nextLine();

        for(int i = 0; i < bands.length; i++) {
            if(bands[i].equals(bandInput))
            {
                System.out.print("whats their best song?");
                String bestSong = scanner.nextLine();
                System.out.println("I love " + bestSong);
            }
        }

    }
}
bfnvny8b

bfnvny8b3#

问题是您用来比较用户输入的方法。您可以将条件更改为“if(arrays.aslist(bands.contains(bandinput))”。
例子

import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        String [] bands = {"guantanamo baywatch", "levitation room", "allah las", "los pesos", "tijuana panthers"};

        System.out.println(Arrays.asList(bands).contains("allah las"));
    }

}

输出

true

相关问题