如何读取字母而不是数字?

时间:2013-04-28 04:05:45

标签: java if-statement

“if”语句只允许在其中添加数字。 有没有办法让它读信? 我只是在Java的第五课(我在大学学习,老师很慢,但我想快速学习)

例如。

import java.util.Scanner;
public class Java {
    public static void main (String [] args) {

        Scanner scan = new Scanner(System.in);
        int answer1;
        System.out.println("Do you like Java?");
        answer1 = scan.nextInt();
        if (answer1 == yes)
        System.out.println("Cool ~");
        else
        System.out.println("Ehh...");
    }
}

我想把“是”而不是数字5。 因此,如果用户键入“是”,它将打印“正确”。

P.S。我没有在搜索引擎中找到明确的答案。 这不是一个重复的线程,因为我正试图找到一个明确的答案。 我需要一个详细的解释。 我还是初学者,使用那些“高科技java词汇”对我没用。

2 个答案:

答案 0 :(得分:2)

您需要修改程序,以便扫描程序读取String而不是int。你可以这样做:

import java.util.Scanner;
public class Java {
    public static void main (String [] args) {

        Scanner scan = new Scanner(System.in);
        String answer1;
        System.out.println("Do you like Java?");
        answer1 = scan.next();
        if (answer1.equals("yes"))
        System.out.println("Cool ~");
        else
        System.out.println("Ehh...");
    }
}

我使用了next(),因为我们只需要一个单词(标记),但要注意还有其他选项来读取字符串。

另请注意,我已在条件中更改了测试,因为它现在是String。请参阅this answer for more on comparing Strings

答案 1 :(得分:1)

  

您需要修改程序,以便扫描程序读取字符串而不是int。你可以这样做:

     

import java.util.Scanner;公共类Java {       public static void main(String [] args){

    Scanner scan = new Scanner(System.in);
    String answer1;
    System.out.println("Do you like Java?");
    answer1 = scan.next();
    if (answer1.equals("yes"))
    System.out.println("Cool ~");
    else
    System.out.println("Ehh...");
} }
     

我使用了next(),因为我们只想要一个单词(标记),但要注意读取字符串还有其他选项。

     

另请注意,我已经在条件中更改了测试,因为它是   现在是一个String。有关比较字符串的更多信息,请参阅此答案。

好的,如果您希望程序同时读取单词和数字,该怎么办: 这是我的程序(更深入,当你看到完整的东西),但这是我正在拥有该程序的5个部分之一(看起来像)...

public static void Gdr1() {
        try {
            System.out.print("[Code: Gdr1]  Grade 1: %");
            Scanner gdr1 = new Scanner(System.in);
            Z = gdr1.next();
            Z = Double.toString(Grd1);
            Grd1 = Double.parseDouble(Z);
            if ((Grd1<100)&&(Grd1>=5)) {
                Gdr2();
            } else if ((Grd1>=100)&&(Grd1<125)) {
                System.out.println("    System> Great Job "+Stu+"!");
                Gdr2();
            } else if (Grd1<5) {
                System.out.println("I'm sorry, the lowest grade I am allowed to compute is 5...");
                Gdr1();
            } else if (Z.equalsIgnoreCase("restart")) {
                restart01();
            } else {
                System.out.println("("+Z+") cannot be resolved in my system...");
                Gdr1();
            }
        } catch (Exception e) {}
    }

现在一切都在程序中运行,除了最终用户的输入= "restart"时,我知道程序中的一些代码看起来很复杂,但它确实有效(大部分都是),任何人都可以帮忙我试着想出这个问题,这是我在学校的投资组合,最晚时间是2017年1月25日晚上11:59。

诸如Z(常量字符串),""+Stu+""(变量输入)和[Code: Gdr1]之类的内容是出于某种目的......