简单地说,您希望从0开始的每4个位置有两个字符。您可以使用以下代码:
StringBuilder builder = new StringBuilder();
for (int i = 0; i < safeLength; i += 4){
builder.Append(str.substring(i, i + 2));
}
与您接受的答案不同,在这个答案中有:
- 无混淆;
-
意图非常明确;和
-
最重要的是,没有或三元运算符。
if-else
更新:我知道这种可能性,但因为我想只关注核心逻辑,所以我没有添加该检查。以下是需要添加的代码,以避免特殊情况:IndexOutOfBoundsException
将以下代码放在 for 循环上方:
int safeLength = str.Length();
bool lengthCorrectionWasNeeded = (str.length() - 1) % 4 == 0;
if (lengthCorrectionWasNeeded) safeLength--;
将以下代码放在 for 循环下方:
if (lengthCorrectionWasNeeded) builder.append(str.substring(str.length() - 2));
最后将包含所需的字符串。builder.ToString()