我有一个列表如下
[url1,url2,url3,url4]
Run Code Online (Sandbox Code Playgroud)
此列表将基于HTML下拉列表中的多个选择.所以列表大小即列表元素动态变化.我的问题是我无法获得字符串单引号的逻辑.我希望上面的字符串列表显示为
'url1','url2','url3','url4'
Run Code Online (Sandbox Code Playgroud)
这是'
每个字符串的单引号(),,
不应该删除逗号().请帮助我如何使用Java实现这一目标.
bay*_*ren 16
import org.apache.commons.lang.StringUtils;
...
...
String arr[] = new String[4];
arr[0] = "my";
arr[1] = "name";
arr[2] = "is";
arr[3] = "baybora";
String join = "'" + StringUtils.join(arr,"','") + "'";
Run Code Online (Sandbox Code Playgroud)
结果是: '我','名字','是','baybora'
Omk*_*kar 12
您可以使用Java 8实用程序类java.util.StringJoiner
.
这个类专门介绍了字符串值的格式列表.
例如:
StringJoiner joiner = new StringJoiner("','", "'", "'");
joiner.add("url1");
joiner.add("url2");
joiner.add("url3");
joiner.add("url4");
System.out.println(joiner);
Run Code Online (Sandbox Code Playgroud)
产量
'url1','url2','url3','url4'
Run Code Online (Sandbox Code Playgroud)
注意,在构造函数中StringJoiner
,
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
Run Code Online (Sandbox Code Playgroud)
我们将单引号作为前缀和后缀传递,以满足您的特定要求.
jit*_*ney 11
对于列表,您可以通过Java 8转换它
list.stream().collect(Collectors.joining("','", "'", "'"));
Run Code Online (Sandbox Code Playgroud)
使用Java 8 Streams:
String[] array = {"url1", "url2", "url3", "url4"}
Stream.of(array).collect(Collectors.joining("','", "'", "'"));
Run Code Online (Sandbox Code Playgroud)
1)迭代列表(for/while)
2)对于list的每个元素,附加'',.(提示:在StringBuilder上使用append()
3)截断/子串列表删除最后一个,添加(提示:在String类上使用子串)
小智 5
最快,最有效的方法
例如
ArrayList<String> a=[url1,url2,url3,url4];
String s ="'"+a.toString().replace("[","").replace("]", "").replace(" ","").replace(",","','")+"'";
Run Code Online (Sandbox Code Playgroud)
有一个 Util.java 文件,或者如果您已经拥有所有常见的 util 内容,那么只需添加这些静态方法
对于单引号
public static String singleQuote(String str) {
return (str != null ? "'" + str + "'" : null);
}
Run Code Online (Sandbox Code Playgroud)
对于双引号
public static String doubleQuotes(String str) {
return (str != null ? "\"" + str + "\"" : null);
}
Run Code Online (Sandbox Code Playgroud)