我知道这是一个新手问题,但在Java中C#的字符串操作是否相同?
具体来说,我正在谈论String.Format
和String.Join
.
Java String对象有一个format
方法(从1.5开始),但没有join
方法.
要获得一些尚未包含的有用的String实用程序方法,可以使用org.apache.commons.lang.StringUtils.
String.format.至于加入,你需要自己编写:
static String join(Collection> s, String delimiter) { StringBuilder builder = new StringBuilder(); Iterator> iter = s.iterator(); while (iter.hasNext()) { builder.append(iter.next()); if (!iter.hasNext()) { break; } builder.append(delimiter); } return builder.toString(); }
以上内容来自http://snippets.dzone.com/posts/show/91
番石榴自带的Joiner
类.
import com.google.common.base.Joiner; Joiner.on(separator).join(data);
从Java 8开始,join()
现在可以作为String类的两个类方法使用.在这两种情况下,第一个参数是分隔符.
您可以将各个CharSequence
s作为附加参数传递:
String joined = String.join(", ", "Antimony", "Arsenic", "Aluminum", "Selenium"); // "Antimony, Arsenic, Alumninum, Selenium"
或者你可以通过Iterable extends CharSequence>
:
Liststrings = new LinkedList (); strings.add("EX"); strings.add("TER"); strings.add("MIN"); strings.add("ATE"); String joined = String.join("-", strings); // "EX-TER-MIN-ATE"
Java 8还添加了一个新类,StringJoiner
您可以像这样使用它:
StringJoiner joiner = new StringJoiner("&"); joiner.add("x=9"); joiner.add("y=5667.7"); joiner.add("z=-33.0"); String joined = joiner.toString(); // "x=9&y=5667.7&z=-33.0"
TextUtils.join可在Android上使用
您还可以为字符串使用变量参数,如下所示:
String join (String delim, String ... data) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < data.length; i++) { sb.append(data[i]); if (i >= data.length-1) {break;} sb.append(delim); } return sb.toString(); }