Mam tu trochę irytującego przypadku; w którym nie jestem w stanie odpowiednio wczytać danych wejściowych. Zawsze brałem dane wejściowe przez Scanner
i nie jestem przyzwyczajony do BufferedReader
.Wprowadzanie danych wejściowych za pomocą BufferedReader w Javie
format wejściowy
First line contains T, which is an integer representing the number of test cases.
T cases follow. Each case consists of two lines.
First line has the string S.
The second line contains two integers M, P separated by a space.
Przykład
Input:
2
AbcDef
1 2
abcabc
1 1
Mój kod do tej pory:
public static void main (String[] args) throws java.lang.Exception
{
BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
int T= Integer.parseInt(inp.readLine());
for(int i=0;i<T;i++) {
String s= inp.readLine();
int[] m= new int[2];
m[0]=inp.read();
m[1]=inp.read();
// Checking whether I am taking the inputs correctly
System.out.println(s);
System.out.println(m[0]);
System.out.println(m[1]);
}
}
Podczas wprowadzania do wyżej przedstawionym przykładzie, pojawia się następujący komunikat:
AbcDef
9
49
2
9
97
twój m [0] = inp.read(); czyta bajt lub coś takiego. wykonaj readline w ciągu znaków i podziel go, aby uzyskać dwa pola, a następnie przeanalizuj je w ints. –
'inp.read()' odczyta pojedynczy znak (16-bitowy), nie bajt (8-bitowy). –