我这里有一点烦人的情况;其中我无法正确接受输入。我一直通过Scanner
接受输入,而不习惯BufferedReader
。
INPUT FORMAT
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.
示例
Input:
2
AbcDef
1 2
abcabc
1 1
到目前为止我的代码:
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]);
}
}
当输入上面显示的示例时,我得到以下输出:
AbcDef
9
49
2
9
97
答案 0 :(得分:14)
BufferedReader#read
从流中读取单个字符[0到65535(0x00-0xffff)],因此无法从流中读取单个整数。
String s= inp.readLine();
int[] m= new int[2];
String[] s1 = inp.readLine().split(" ");
m[0]=Integer.parseInt(s1[0]);
m[1]=Integer.parseInt(s1[1]);
// Checking whether I am taking the inputs correctly
System.out.println(s);
System.out.println(m[0]);
System.out.println(m[1]);
您也可以查看Scanner vs. BufferedReader。
答案 1 :(得分:2)
问题ID因inp.read();
method而异。它一次返回单个字符,因为你将它存储到int类型的数组中,所以只存储ascii值。
你可以做什么
for(int i=0;i<T;i++) {
String s= inp.readLine();
String[] intValues = inp.readLine().split(" ");
int[] m= new int[2];
m[0]=Integer.parseInt(intValues[0]);
m[1]=Integer.parseInt(intValues[1]);
// Checking whether I am taking the inputs correctly
System.out.println(s);
System.out.println(m[0]);
System.out.println(m[1]);
}
答案 2 :(得分:0)
您不能像使用BufferedReader
类一样使用Scanner
分别在一行中读取单个整数。
虽然,您可以针对您的查询执行类似的操作:
import java.io.*;
class Test
{
public static void main(String args[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int t=Integer.parseInt(br.readLine());
for(int i=0;i<t;i++)
{
String str=br.readLine();
String num[]=br.readLine().split(" ");
int num1=Integer.parseInt(num[0]);
int num2=Integer.parseInt(num[1]);
//rest of your code
}
}
}
我希望这会对你有所帮助。