Java中的爆炸和内爆(就像PHP一样)

Pan*_*ari 87 java arrays string split

我是Java新手,虽然在PHP方面有很好的经验,并且正在寻找Java中爆炸和内爆(可用PHP)功能的完美替代品.

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

例如:

String s = "x,y,z";
array a = javaExplode(',',s);  //what is javaExplode??
System.out.println(Arrays.toString(a));
Run Code Online (Sandbox Code Playgroud)

期望的输出:

[x, y, z]
Run Code Online (Sandbox Code Playgroud)

Bri*_*ach 135

弦乐的Javadoc显示,String.split()是你在考虑找什么explode.

Java不包含"加入"等效的"内爆".与其他答案建议的简单函数不包括巨大的外部依赖,您可能只想编写几行代码.有很多方法可以实现这一目标; 使用a StringBuilder是一个:

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();
Run Code Online (Sandbox Code Playgroud)

  • Split 确实使用了正则表达式(在 PHP、Perl、Java 等中)。如果你想在另一个符号上拆分,则需要对其进行转义,如下所示: String[] split = foo.split("\\\("); (2认同)
  • 请注意,从 **Java 8** 开始,我们实际上有 `String#join`([文档](https://docs.oracle.com/javase/9​​/docs/api/java/lang/String.html#join- java.lang.CharSequence-java.lang.CharSequence...-))。对于您的示例:`Stringjoined = String.join(" ", split);`。该方法使用 `StringJoiner` 类。 (2认同)

Men*_*nno 24

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

为了替换implode()我的建议,您可以编写自定义函数或使用Apache CommonsStringUtils.join()函数.


EnK*_*ypt 16

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

爆炸:

String[] exploded="Hello World".split(" ");
Run Code Online (Sandbox Code Playgroud)

内爆:

String imploded=StringUtils.join(new String[] {"Hello", "World"}, " ");
Run Code Online (Sandbox Code Playgroud)

请记住,StringUtils位于外部库中.


小智 5

java.lang.String.split(String regex)就是您正在寻找的。