我知道这是一个新手问题,但在Java中C#的字符串操作是否相同?
具体来说,我正在谈论String.Format
和String.Join
.
Gra*_*ner 92
Java String对象有一个format
方法(从1.5开始),但没有join
方法.
要获得一些尚未包含的有用的String实用程序方法,可以使用org.apache.commons.lang.StringUtils.
All*_*nde 46
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();
}
Run Code Online (Sandbox Code Playgroud)
以上内容来自http://snippets.dzone.com/posts/show/91
Noe*_*Yap 38
import com.google.common.base.Joiner;
Joiner.on(separator).join(data);
Run Code Online (Sandbox Code Playgroud)
qnt*_*ntm 29
从Java 8开始,join()
现在可以作为String类的两个类方法使用.在这两种情况下,第一个参数是分隔符.
String joined = String.join(", ", "Antimony", "Arsenic", "Aluminum", "Selenium");
// "Antimony, Arsenic, Alumninum, Selenium"
Run Code Online (Sandbox Code Playgroud)
或者你可以通过Iterable<? extends CharSequence>
:
List<String> strings = new LinkedList<String>();
strings.add("EX");
strings.add("TER");
strings.add("MIN");
strings.add("ATE");
String joined = String.join("-", strings);
// "EX-TER-MIN-ATE"
Run Code Online (Sandbox Code Playgroud)
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"
Run Code Online (Sandbox Code Playgroud)
sgs*_*web 12
您还可以为字符串使用变量参数,如下所示:
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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
74974 次 |
最近记录: |