Member 13769403 Ответов: 1

Java воспринимает входное значение не так, как оно есть


8
56
0
1
2
3
4
5
вплоть до 55 лет
входные данные выделены жирным шрифтом

Что я уже пробовал:

class Dash {
	public static void main(String args[])
    throws java.io.IOException{	
        char i;
			int c=System.in.read();
			
			do {
				i=(char)System.in.read();
			} while ((i != '\n'));
		System.out.println(c);
		int y[] = new int [c];
		for (i=0; i<(int)c; i++){
			y[i]=i;
		    System.out.println(y[i]);		
		}
	}
}

1 Ответов

Рейтинг:
12

Richard MacCutchan

Нет, Java делает именно то, что вы ей говорите. System.in.read() считывает один байт из входного потока. А символ '8' имеет байтовое значение 0x38, или десятичное 56. Если вы хотите прочитать определенный тип входных данных, вы должны использовать один из методов InputStream (Java Platform SE 7 )[^].