我有一个关于如何在java中使用int
加载char
和BufferedReader
的问题。
我需要加载给定的String str ="2 3 XX...XXXX..."
...类似的东西。它包含2个整数和String
。
现在我需要首先加载2个数字然后我需要加载字符串然后我需要通过char读取字符串char,比如将XX...XXXX...
部分读作X
和{{ 1}}和X
等等。这是我的代码的一部分:
.
但这似乎是错误的,我不知道如何继续。那么有谁能告诉我如何处理它?</ p>
答案 0 :(得分:0)
如果您知道输入的格式每次都完全相同,您可以按空格分割:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String[] stringArray = str.split("\\s+");
这将为您提供一系列字符串。然后,您可以通过获取stringArray
:
int num1 = Integer.parseInt(stringArray[0]);
int num2 = Integer.parseInt(stringArray[1]);
char[] charArray = stringArray[2].toCharArray();
要访问第一个字符,您可以写:
char char1 = charArray[0];
答案 1 :(得分:0)
这个快速而又脏的程序会解析所有这些。只需复制粘贴并运行它:
public static void main(String[] args) throws Exception {
String str = "12 345 abcdef";
InputStreamReader reader = new InputStreamReader(new ByteArrayInputStream(str.getBytes()));
int state = 1;
StringBuilder builder = new StringBuilder();
for (int i = reader.read(); i != -1; i = reader.read()) {
char c = (char) i;
switch (state) {
case 1:
case 2:
if (c == ' ') {
System.out.println(Integer.parseInt(builder.toString()));
builder = new StringBuilder();
state++;
} else {
builder.append(c);
}
break;
default:
builder.append(c);
}
}
System.out.println(builder);
}
输出:
12
345
abcdef