Невозможно найти символ, если ошибка оператора

Я программировал небольшую программу для удовольствия, но я получаю эту ошибку:

Compilation error time: 0.11 memory: 380672 signal:0Main.java:22: 
error: cannot find symbol
 string dtext = "One";
 ^
 symbol: class string
 location: class Ideone
Main.java:37: error: cannot find symbol
 System.out.println(dtext);
 ^
 symbol: variable dtext
 location: class Ideone
2 errors

Мой код:

import java.util.*;
import java.lang.*;
import java.io.*;
import static java.lang.System.*;
import java.util.Scanner;
import java.lang.String;

class Ideone
{
public static void main (String str[]) throws IOException
{
 Scanner sc = new Scanner(System.in);

 //System.out.println("Please enter the month of birth");
 //int month = sc.nextInt();
 System.out.println("Please enter the day of birth");
 int day = sc.nextInt();

 //day num to day text
 if (day == 1)
 {
 string dtext = "One";
 }
 else if (day == 2)
 {
 string dtext = "Two";
 }
 else if (day == 3)
 {
 string dtext = "Three";
 }
 else
 {
 System.out.println("Error, day incorrect.");
 }

 System.out.println(dtext);
}
}

Я провел некоторое исследование и обнаружил, что java не может найти строковую переменную, но почему? Переменная определена, и оператор печати верен.

3 ответа

В java нет класса string. Существует класс String.

string dtext = "Two";

должно быть

String dtext = "Two";

S должен быть капиталом.

И взгляните на свой диапазон variable String. Вы ограничены этим block If. Переместите его вверх,

Тогда ваш код выглядит

String dtext = "";
 if (day == 1) {
 dtext = "One";
 } else if (day == 2) {
 dtext = "Two";
 } else if (day == 3) {
 dtext = "Three";
 } else {
 System.out.println("Error, day incorrect.");
 }
 System.out.println(dtext);


У вас есть опечатка

String dtext = "One";

Посмотрите на класс String

Еще одна вещь проверяет переменную область

if (day == 1)
{
 String dtext = "One"; //it dtext has local scope here
}//after this line dtext is not available

объявлять dtext за пределами if as

String dtext = "";
 if (day == 1)
 {
 dtext = "One";
 }
 else if (day == 2)
 {
 dtext = "Two";
 }
 else if (day == 3)
 {
 dtext = "Three";
 }
 else
 {
 System.out.println("Error, day incorrect.");
 }

System.out.println(dtext);


строка не существует в java. Ваша первая буква string должна быть капиталом → String

например

изменить string dtext = "One"; to String dtext = "One";

Из вашего кода

if (day == 1)
{
 string dtext = "One";
}
else if (day == 2)
{
 string dtext = "Two";
}
else if (day == 3)
{
 string dtext = "Three";
}
else
{
 System.out.println("Error, day incorrect.");
}

System.out.println(dtext); //this line will get error dtext variable in not reachable.

Ваш код должен выглядеть ниже

String dtext ="";
if (day == 1)
{
 dtext = "One";
}
else if (day == 2)
{
 dtext = "Two";
}
else if (day == 3)
{
 dtext = "Three";
}
else
{
 System.out.println("Error, day incorrect.");
}
System.out.println(dtext);

licensed under cc by-sa 3.0 with attribution.