【问题标题】:Type mismatch: cannot convert from String to int - java类型不匹配:无法从 String 转换为 int - java
【发布时间】:2018-10-10 18:41:37
【问题描述】:

您好,我不知道为什么我的代码会出现这个错误。

线程“main”java.lang.Error 中的异常:未解决的编译问题: 类型不匹配:无法从 String 转换为 int 这是我的代码:

import java.util.*;

public class matchScore{

  public static void main(String[] args){

    String opt;
    String home_team_name;
    String away_team_name;
    int home_team_score;
    int away_team_score;

    String[] name = new String[10];
    int[] score = new int[10];

    System.out.println("Retype an option:\n");
    System.out.println("Home teams");
    System.out.println("Away teams");
    System.out.println("Outputs");

    Scanner scan = new Scanner(System.in);

    opt = scan.nextLine();

    if(opt == "Home teams"){
      System.out.println("Entre first home team name: ");
      name[0] = scan.nextLine();
      System.out.println("Entre first home team score: ");
      score[0] = scan.nextLine();

      System.out.println("Entre second home team name: ");
      name[1] = scan.nextLine();
      System.out.println("Entre second home team score: ");
      score[1] = scan.nextLine();

      System.out.println("Entre third home team name: ");
      name[2] = scan.nextLine();
      System.out.println("Entre third home team score: ");
      score[2] = scan.nextLine();

      System.out.println("Entre forth home team name: ");
      name[3] = scan.nextLine();
      System.out.println("Entre forth home team score: ");
      score[3] = scan.nextLine();

      System.out.println("Entre fifth home team name: ");
      name[4] = scan.nextLine();
      System.out.println("Entre fifth home team score: ");
      score[4] = scan.nextLine();

      System.out.println("Entre sixth home team name: ");
      name[5] = scan.nextLine();
      System.out.println("Entre sixth home team score: ");
      score[5] = scan.nextLine();

      System.out.println("Entre seventh home team name: ");
  name[6] = scan.nextLine();

      System.out.println("Entre seventh home team score: ");
      score[6] = scan.nextLine();
    }
  }
}

我不明白为什么要这样做。我可以想象这是一件简单的事情,只是没有看到 fs。

【问题讨论】:

标签: java arrays string compiler-errors int


【解决方案1】:

使用

score[0] = scan.nextInt();

而不是

score[0] = scan.nextLine();

因为 score[] 是一个 int[] 数组。

还可以使用.equals 比较字符串。改变 opt == "Home teams" 到 opt.equals("Home teams")

【讨论】:

    【解决方案2】:

    您期望输入中有字符串,并尝试将其转换为整数。您可以通过 scan.nextInt() 或 Integer.valueOf(scan.nextLine()) 来解决此问题,只要您调用期望整数的值

    【讨论】:

      【解决方案3】:

      每当您使用扫描仪时,它都会自动认为它是一个字符串。所以改为这样做: name[0]= Integer.valueOf(scan.next()); 这会自动将其转换为数字。

      【讨论】:

      • 这行得通,但 scan.nextInt() 更好,正如 GBlodgett 在他们的评论中提到的那样。
      猜你喜欢
      • 2013-12-08
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      相关资源
      最近更新 更多