JavaScript有 Array.join()
js>["Bill","Bob","Steve"].join(" and ")
Bill and Bob and Steve
Run Code Online (Sandbox Code Playgroud)
Java有这样的东西吗?我知道我可以用StringBuilder自己解决一些问题:
static public String join(List<String> list, String conjunction)
{
StringBuilder sb = new StringBuilder();
boolean first = true;
for (String item : list)
{
if (first)
first = false;
else
sb.append(conjunction);
sb.append(item);
}
return sb.toString();
}
Run Code Online (Sandbox Code Playgroud)
...但是,如果像这样的东西已经是JDK的一部分,那就没有意义了.
将字符串列表连接到组合分隔字符串的最佳方法是什么.我主要关注何时停止添加分隔符.我将使用C#作为我的示例,但我希望这与语言无关.
编辑:我没有使用StringBuilder使代码稍微简单.
使用For循环
for(int i=0; i < list.Length; i++)
{
result += list[i];
if(i != list.Length - 1)
result += delimiter;
}
Run Code Online (Sandbox Code Playgroud)
使用For循环设置之前的第一个项目
result = list[0];
for(int i = 1; i < list.Length; i++)
result += delimiter + list[i];
Run Code Online (Sandbox Code Playgroud)
这些对于IEnumerable不起作用,因为你事先不知道列表的长度
使用foreach循环
bool first = true;
foreach(string item in list)
{
if(!first)
result += delimiter;
result += item;
first = false;
}
Run Code Online (Sandbox Code Playgroud)
foreach循环的变化
来自Jon的解决方案
StringBuilder builder = new StringBuilder();
string delimiter = "";
foreach (string item in list)
{
builder.Append(delimiter);
builder.Append(item); …Run Code Online (Sandbox Code Playgroud) 我想知道一段时间,加入一个字符串数组的一个漂亮,干净的解决方案可能看起来像.示例:我有["Alpha","Beta","Gamma"]并希望将字符串连接成一个,用逗号分隔 - "Alpha,Beta,Gamma".
现在我知道大多数编程语言为此提供了某种连接方法.我只是想知道这些是如何实现的.当我参加入门课程时,我经常尝试单独进行,但从未找到过令人满意的算法.一切似乎都很混乱,问题是你不能只是循环遍历数组,连接字符串,因为你会添加一个太多的逗号(在最后一个字符串之前或之后).我不想检查循环中的条件.我真的不想在循环之前/之后添加第一个或最后一个字符串(我猜这可能是最好的方法吗?).
有人能给我一个优雅的解决方案吗?或者告诉我为什么没有更优雅的东西呢?
我有一个字符串的数组列表(数组列表中的每个单独的元素只是一个没有空格的单词),我想取每个元素并将每个下一个单词附加到字符串的末尾.
所以说数组列表有
element 0 = "hello"
element 1 = "world,"
element 2 = "how"
element 3 = "are"
element 4 = "you?"
Run Code Online (Sandbox Code Playgroud)
我想创建一个名为句子的字符串,其中包含"hello world,你好吗?"
我想在表中查询字段id,其中一些值如1,5,4,11,它们将根据选择来自前一个屏幕.
cursor = database.query(tablename,
new String[] { "TopName" }, "id =?", new String[]{"2,3"}, null, null, null);
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到游标计数0,新的String [] {"2"}我得到的值我想要的所有id的字符串数组中的值像OR那样在该列中有值.
有一种简单的方法可以将只包含字符的ArrayList转换为字符串吗?所以说我们有
ArrayList<Character> arrayListChar = new ArrayList<Character>();
arrayListChar.add(a);
arrayListChar.add(b);
arrayListChar.add(c);
Run Code Online (Sandbox Code Playgroud)
因此数组列表包含a,b和c.理想情况下,我想要做的是将其转换为字符串"abc".