我正在寻找一种方法将字符串数组合成一个分隔的字符串.与split()相反.
在我尝试编写自己的论坛之前想要问论坛(因为JDK拥有一切)
我想在对象上执行'foreach'时,对最后一个循环迭代做一些不同的事情.我正在使用Ruby,但C#,Java等也是如此.
list = ['A','B','C']
list.each{|i|
puts "Looping: "+i # if not last loop iteration
puts "Last one: "+i # if last loop iteration
}
Run Code Online (Sandbox Code Playgroud)
所需的输出相当于:
Looping: 'A'
Looping: 'B'
Last one: 'C'
Run Code Online (Sandbox Code Playgroud)
显而易见的解决方法是使用代码将代码迁移到for循环'for i in 1..list.length',但for each解决方案感觉更优雅.在循环期间编写特殊情况的最优雅方法是什么?可以用foreach完成吗?
我正在尝试使用for-each语句替换基于迭代器的Java列表循环,但代码在某些时候使用iterator.hasNext()它来检查它是否到达列表中的最后一个元素.
for-each替代品有类似的东西吗?
for (Object current : objectList) {
if (last-element)
do-something-special
}
Run Code Online (Sandbox Code Playgroud) 通常我必须编写一个循环,它必须特殊情况下集合中的第一个项目,代码似乎永远不应该是清晰的.
如果没有重新设计C#语言,那么编写这些循环的最佳方法是什么?
// this is more code to read then I would like for such a common concept
// and it is to easy to forget to update "firstItem"
foreach (x in yyy)
{
if (firstItem)
{
firstItem = false;
// other code when first item
}
// normal processing code
}
// this code is even harder to understand
if (yyy.Length > 0)
{
//Process first item;
for (int i = 1; i < yyy.Length; i++)
{
// process …Run Code Online (Sandbox Code Playgroud)