如何在java中使用字符数组分隔符分割字符串?

发布于 2024-11-24 04:26:08 字数 122 浏览 1 评论 0原文

就像c#:

string[] Split(char[] separator, StringSplitOptions options)

java中有等效的方法吗?

like c#:

string[] Split(char[] separator, StringSplitOptions options)

is there an equivalent method in java?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

爱的故事 2024-12-01 04:26:12

功能上的另一个提升是 Guava 的 Splitter< /a>:

Splitter splitOnStuff = Splitter.on(CharMatcher.anyOf("|,&"))
                                .omitEmptyStrings();

Iterable<String> values = splitOnStuff.split("value1&value2|value3,value4");

Another level up in functionality is Guava's Splitter:

Splitter splitOnStuff = Splitter.on(CharMatcher.anyOf("|,&"))
                                .omitEmptyStrings();

Iterable<String> values = splitOnStuff.split("value1&value2|value3,value4");
傾旎 2024-12-01 04:26:12

你必须使用正则表达式来实现这一点。它会告诉你必须在什么基础上分开。
就像有 OR“|”操作员。如果你使用

String regex = "a|b|c";
String[] tokens = str.split(regex)

它,它将在 a、b 和 a 上拆分; c 基础。

You have to use Regex, to achieve this. It will tell this on which basis you have to separate.
Like there is OR "|" operator. If you use

String regex = "a|b|c";
String[] tokens = str.split(regex)

It will split on a,b & c basis.

窝囊感情。 2024-12-01 04:26:12

Goold ol' StringTokenizer 也会这样做:

public static void main(String[] args) {
    String delim = ",^*/+-&=<>=%(){};";
    String str = "foo^bar{hello}world";
    StringTokenizer tok = new StringTokenizer(str, delim);
    while (tok.hasMoreTokens()) {
        System.out.println(tok.nextToken());
    }
}

Goold ol' StringTokenizer will do it too:

public static void main(String[] args) {
    String delim = ",^*/+-&=<>=%(){};";
    String str = "foo^bar{hello}world";
    StringTokenizer tok = new StringTokenizer(str, delim);
    while (tok.hasMoreTokens()) {
        System.out.println(tok.nextToken());
    }
}
故乡的云 2024-12-01 04:26:11
String[] split(String)

您可以使用 String(char[]) 将 char[] 转换为字符串。

String[] split(String)

You can turn a char[] into a String with String(char[]).

南街九尾狐 2024-12-01 04:26:11

也许你想要这个。我不确定:

    String text = "abcdefg";
    System.out.println(Arrays.toString(text.split("d|f|b")));

结果:

   [a, c, e, g]

Possibly you want this. I'm not sure:

    String text = "abcdefg";
    System.out.println(Arrays.toString(text.split("d|f|b")));

Results in:

   [a, c, e, g]
娇纵 2024-12-01 04:26:10

这可以实现您想要的:

public static void main(String[] args) throws Exception
{
    char[] arrOperators = { ',', '^', '*', '/', '+', '-', '&', '=', '<', '>', '=', '%', '(', ')', '{', '}', ';' };
    String input = "foo^bar{hello}world"; // Expecting this to be split on the "special" chars
    String regex = "(" + new String(arrOperators).replaceAll("(.)", "\\\\$1|").replaceAll("\\|$", ")"); // escape every char with \ and turn into "OR"
    System.out.println(regex); // For interest only
    String[] parts = input.split(regex);
    System.out.println(Arrays.toString(parts));
}

输出(包括仅用于信息/兴趣的最终正则表达式):

(\,|\^|\*|\/|\+|\-|\&|\=|\<|\>|\=|\%|\(|\)|\{|\}|\;)
[foo, bar, hello, world]

This does what you want:

public static void main(String[] args) throws Exception
{
    char[] arrOperators = { ',', '^', '*', '/', '+', '-', '&', '=', '<', '>', '=', '%', '(', ')', '{', '}', ';' };
    String input = "foo^bar{hello}world"; // Expecting this to be split on the "special" chars
    String regex = "(" + new String(arrOperators).replaceAll("(.)", "\\\\$1|").replaceAll("\\|$", ")"); // escape every char with \ and turn into "OR"
    System.out.println(regex); // For interest only
    String[] parts = input.split(regex);
    System.out.println(Arrays.toString(parts));
}

Output (including the final regex for information/interest only):

(\,|\^|\*|\/|\+|\-|\&|\=|\<|\>|\=|\%|\(|\)|\{|\}|\;)
[foo, bar, hello, world]
月下客 2024-12-01 04:26:10

看一下 public String[] split(String regex)java.util.regex

Take a look at public String[] split(String regex) and java.util.regex.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文