当前位置: 首页 > 知识库问答 >
问题:

用java中的split方法分离不同的输入

苍温文
2023-03-14

使用java中的split方法将“Smith,John(111)123-4567”拆分为。我需要去掉逗号和括号。这是我到目前为止所掌握的,但它并没有分裂字符串。

    // split data into tokens separated by spaces
    tokens = data.split(" , \\s ( ) ");
    first = tokens[1];
    last = tokens[0];
    area = tokens[2];


    // display the tokens one per line
    for(int k = 0; k < tokens.length; k++) {

        System.out.print(tokens[1] + " " + tokens[0] + " " + tokens[2]);
    }

共有2个答案

佘缪文
2023-03-14

看起来< code>string.split函数不知道将参数值拆分成单独的正则表达式匹配字符串。

除非我不知道Javastring.split()函数的未记录特性(留档在这里),否则您的拆分函数参数试图将字符串拆分为操作数字符串中不存在的整个值",\\s ( )", 。

我无法在Java运行时测试您的代码来回答,但我认为您需要将您的拆分操作拆分为单独的拆分操作,类似于:

data = "Last, First (111) 123-4567";
tokens = data.split(","); 
//tokens variable should now have two strings:
//"Last", and "First (111) 123-4567"
last = tokens[0];
tokens = tokens[1].split(" ");
//tokens variable should now have three strings:
//"First", "(111)", and "123-4567"
first = tokens[0];
area = tokens[1];
裴曜灿
2023-03-14

也可以使用正则表达式解析输入来解决:

String inputString = "Smith, John (111) 123-4567";

String regexPattern = "(?<lastName>.*), (?<firstName>.*) \\((?<cityCode>\\d+)\\).*";
Pattern pattern = Pattern.compile(regexPattern);
Matcher matcher = pattern.matcher(inputString);

if (matcher.matches()) {
      out.printf("%s %s %s", matcher.group("firstName"),
                                        matcher.group("lastName"),
                                        matcher.group("cityCode"));
}

输出:约翰史密斯111

 类似资料:
  • 本文向大家介绍Java的split方法使用详解,包括了Java的split方法使用详解的使用技巧和注意事项,需要的朋友参考一下 相信大家都经常使用String 的split方法,但是大家有没有遇到下面的这种情况: 大家想想下面的代码执行结果是什么 执行结果: 为什么会出现这样的结果呢,查找API发现了解决方法 解决方法:       通过查看API我们发现我们常用的split方法默认传递的是0,现

  • 问题内容: 当我表演 我有两个数组分别是23和34 但是当我做了 我在数组23x34中得到了一项 那么,有什么方法可以不区分大小写地使用split方法,或者是否有其他方法可以帮助您? 问题答案: 使用正则表达式模式中

  • 本文向大家介绍PL/SQL实现JAVA中的split()方法的例子,包括了PL/SQL实现JAVA中的split()方法的例子的使用技巧和注意事项,需要的朋友参考一下 众所周知,java中为String类提供了split()字符串分割的方法,所以很容易将字符串以指定的符号分割为一个字符串数组。但是在pl/sql中并没有提供像java中的split()方法,所以要想在pl/sql中实现字符串的分割还

  • 我有两个不同的方法,在两个不同的类中。我希望他们都能阅读同一行输入,并检查不同的内容。一个查找“给我冲杯咖啡”之类的说明,另一个查找不同的关键字,如“请”和“谢谢”(这些影响程序对我的反应): 然后我在我的主字符串中调用它们,只是为了测试它们: 我的控制台显示如下: 我知道发生了什么,但我想不出其他办法。我也尝试过使用同一个扫描仪,不同的字符串,但仍然不起作用。我怎样才能使这两种方法都能读取我的第

  • 想象一下下面的scanario:我有一个程序,它要求输入一个整数,然后是一个String输入。 根据aobe代码,我没有机会输入姓名。因此,通常我会声明2个扫描仪对象,如下所示: 我的问题是:有必要声明多个扫描仪对象来接受不同类型的输入吗??我这样做是正确的吗? 我已经考虑这个问题很多年了。(SO中的几个问题提到了多扫描仪,但他们的问题只使用了一个扫描仪对象,所以我今天问这个问题。)