java - 如何在java中以预期的形式获取输入?

标签 java input io scanf

我想输入一个字符串

%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;
    }

最佳答案

试试这个:

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

关于java - 如何在java中以预期的形式获取输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56464241/

相关文章:

java - Netty 客户端引导连接失败

java - 断言对象是特定类型

java - 在 MapReduce 中处理用户输入字符串

c - PCI 输入/输出控制编程

c - fread() c 中的一个结构体

python - 是否可以创建具有可编辑默认值的输入?

java - 如何显示带有MySQL表路径的图像?

java - 如何使用 Itextpdf XML Worker 将 HTML 上标标签转换为 PDF?

java - 在 Magnolia CMS 上使用 Spring + SockJS + STOMP 的 Websocket

macos - 在 OS X 中,如何使用标准输入法编辑器输入第二平面 Unicode 字符?