如何在java中加载int和char使用BufferedReader?

时间:2014-03-27 12:39:39

标签: java bufferedreader

我有一个关于如何在java中使用int加载charBufferedReader的问题。

我需要加载给定的String str ="2 3 XX...XXXX..." ...类似的东西。它包含2个整数和String

现在我需要首先加载2个数字然后我需要加载字符串然后我需要通过char读取字符串char,比如将XX...XXXX...部分读作X和{{ 1}}和X等等。这是我的代码的一部分:

.

但这似乎是错误的,我不知道如何继续。那么有谁能告诉我如何处理它?<​​/ p>

2 个答案:

答案 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