Несоответствие типов: невозможно преобразовать из String в int - Java - PullRequest
0 голосов
/ 10 октября 2018

Привет, у меня возникли проблемы с тем, почему эта ошибка появляется в моем коде.

Исключение в потоке "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.

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вы ожидаете строки во входных данных и пытаетесь преобразовать их в целое число.Это можно исправить, выполнив scan.nextInt() или Integer.valueOf(scan.nextLine()) всякий раз, когда вы вызываете значение, ожидающее целое число

0 голосов
/ 10 октября 2018

Используйте

score[0] = scan.nextInt();

вместо

score[0] = scan.nextLine();

, так как счет [] является массивом int [].

Также сравнивайте строки, используя .equals.Измените opt == "Home teams" на opt.equals("Home teams")

...