2016-01-06 7 views
-2

Я пытаюсь написать простую программу, которая просит ввести размер, затем печатает строку на основе введенного вами. Последняя строка в коде ниже дает мне ошибку:Как исправить ошибку несовместимого типа?

Incompatible types; int cannot be converted to String

Как я могу устранить эту ошибку?

int smallSize = 30; 
int mediumSize = 35; 
int largeSize = 40; 
String size; 

System.out.println("Please enter your size"); 
size = (String) System.in.read(); 
+3

Что вы не понимаете в сообщении об ошибке? Вы знаете, что такое 'int'? Вы знаете, что такое 'String'? Как вы думаете, '(String) System.in.read();' does? Почему ты так думаешь? –

+1

'System.in.read()' возвращает [1 байт данных] (http://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read%28%29) из стандартного входного потока; это, вероятно, не то, что вы хотите. Возможно, вам стоит взглянуть на использование «Сканера» для обертывания 'System.in'. –

+7

@ John3136 Я не думаю, что это глупый вопрос; Я думаю, это вопрос новичка. Я согласен с тем, что чтение документации может помочь, но я думаю, что лучше указать OP на правильную документацию, чем называть его глупым. –

ответ

1

Неправильно:

size = String.valueOf(System.in.read()); 

Это никогда не даст вам правильный размер, из-за его возврата значений ASCII числа введенного. (Это тип символа.) BTW, System.in.read() возвращает значение 'int'.

Вы должны импортировать

import java.util.Scanner; 

Затем создайте новую переменную из сканера объекта.

Scanner scn = new Scanner(System.in); 

После этого объявляйте разные размеры и инициализируйте их.

size = scn.next(); 

должен производить желаемый результат.

Смежные вопросы