Java字符串使用管道分割多个分隔符'

我试图将一个字符串b =“x + yi”分解为两个整数x和y。

这是我的原始答案。 在这里,我用substring方法删除了尾部'i'字符:

int Integerpart = (int)(new Integer(b.split("+")[0]));
int Imaginary = (int)(new Integer((b.split("+")[1]).
                      substring(0, b.split("+")[1].length() - 1)));

但是我发现下面的代码是一样的:

int x = (int)(new Integer(a.split("+|i")[0]));
int y = (int)(new Integer(a.split("+|i")[1]));

'|'有什么特别的吗? 我查了文档和许多其他问题,但我找不到答案。


您可以使用给定的链接来了解定界符如何工作

如何在Java扫描器中使用分隔符?

另一种方法

您可以使用Scanner类的useDelimiter(String pattern)方法。 使用Scanner类的useDelimiter(String pattern)方法。 基本上我们使用String分号(;)来标记在Scanner对象的构造函数中声明的字符串。

在名字,性别和年龄的字符串“Anne Mills / Female / 18”中有三个可能的标记。 扫描程序类用于分割字符串并在控制台中输出令牌。

import java.util.Scanner;

/*
 * This is a java example source code that shows how to use useDelimiter(String pattern)
 * method of Scanner class. We use the string ; as delimiter
 * to use in tokenizing a String input declared in Scanner constructor
 */

public class ScannerUseDelimiterDemo {

    public static void main(String[] args) {

        // Initialize Scanner object
        Scanner scan = new Scanner("Anna Mills/Female/18");
        // initialize the string delimiter
        scan.useDelimiter("/");
        // Printing the delimiter used
        System.out.println("The delimiter use is "+scan.delimiter());
        // Printing the tokenized Strings
        while(scan.hasNext()){
            System.out.println(scan.next());
        }
        // closing the scanner stream
        scan.close();

    }
}

split()方法采用控制分割的正则表达式。 尝试“[+ i]”。 大括号标记一组字符,在本例中为“+”和“i”。

但是,这并不能完成你想要做的事情。 你会以“b = x”,“y”,“”结尾。 正则表达式还提供搜索和捕获功能。 看看String.matches(String regex)。

链接地址: http://www.djcxy.com/p/78351.html

上一篇: Java String Split with multiple delimiter using pipe '

下一篇: Java: Parse lines from files