101

我是 Java 新手,虽然在 PHP 方面有很好的经验,并且正在寻找 Java 中的 explode 和 implode(PHP 中可用)函数的完美替代品。

我用谷歌搜索了同样的结果,但对结果不满意。任何人都对我的问题有好的解决方案将不胜感激。

例如:

String s = "x,y,z";
//Here I need a function to divide the string into an array based on a character.
array a = javaExplode(',', s);  //What is javaExplode?
System.out.println(Arrays.toString(a));

期望的输出:

[x, y, z]
4

6 回答 6

149

String的Javadoc揭示String.split()了您正在寻找的关于explode.

Java 不包括“连接”等价物的“内爆”。您可能只想编写几行代码,而不是像其他答案所建议的那样为一个简单的函数包含一个巨大的外部依赖项。有很多方法可以做到这一点;使用 aStringBuilder是一个:

String foo = "This,that,other";
String[] split = foo.split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < split.length; i++) {
    sb.append(split[i]);
    if (i != split.length - 1) {
        sb.append(" ");
    }
}
String joined = sb.toString();
于 2013-05-27T13:23:44.157 回答
24

String.split()可以为您提供替代品explode()

作为替代,implode()我建议您编写自定义函数或使用Apache CommonsStringUtils.join()函数。

于 2013-05-27T12:55:40.710 回答
16

好的替代方法是 String.split 和 StringUtils.join 方法。

爆炸:

String[] exploded="Hello World".split(" ");

内爆:

String imploded=StringUtils.join(new String[] {"Hello", "World"}, " ");

请记住,尽管 StringUtils 位于外部库中。

于 2013-05-27T12:57:34.687 回答
4

java.lang.String.split(String regex)就是你要找的。

于 2013-05-27T12:55:56.063 回答
4

我不熟悉 PHP,但我认为String.split是 Java 等价于 PHP explode。至于implode,标准库不提供这样的功能。您只需遍历数组并使用StringBuilder / StringBuffer构建字符串。或者您可以尝试优秀的Google Guava SplitterJoinersplit/join来自Apache Commons StringUtils的方法。

于 2013-05-27T13:02:02.970 回答
0

如果您在 String Class 的参考中谈论。所以你可以使用

子串/拆分

用于爆炸和使用字符串

连接

对于内爆。

于 2013-05-27T12:55:01.530 回答