首页 > 解决方案 > 如何在java中以预期形式输入?

问题描述

我想输入一个字符串

%d+%d

java中的格式。我该怎么做?

我知道我可以用 string.split() 方法做到这一点。但是我觉得如果我必须在输入中处理更多的字符串,它会变得更加复杂。喜欢

%d+%d-%d

我正在寻找接近 c 的 scanf 解决方案的解决方案。

我试过这个 %d+%d

Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String first,second;
String[] arr = str.split("\\+");
first = arr[0];
second = arr[1];
scanner.close();

而这对于 %d+%d-%d+%d........=%d-%d+%d.....+%d...

private final String[] splitLoL(String txt) {
        LinkedList<String> strList1 = new LinkedList<String>();
        LinkedList<String> strList2 = new LinkedList<String>();
        LinkedList<String> strList3 = new LinkedList<String>();;
        strList1.addAll(Arrays.asList(txt.split("\\+")));

        for(String str : strList1) {
            String[] proxy = str.split("-");
            strList2.addAll(Arrays.asList(proxy));
        }
        for(String str : strList2) {
            String[] proxy = str.split("=");
            strList3.addAll(Arrays.asList(proxy));
        }
        String[] strArr = new String[strList3.size()];
        for(int i = 0; i < strArr.length; i++) {
            strArr[i] = new String(strList3.get(i));
        }
        return strArr;
    }

标签: javainputioscanf

解决方案


尝试这个:

String str = scanner.nextLine();
List<String> str2 = new ArrayList();
Matcher m = Pattern.compile("\\d+").matcher(str);
while(m.find()) {
  str2.add(m.group());   
}

推荐阅读