【发布时间】:2016-08-02 10:49:38
【问题描述】:
这里很时髦。我正在尝试遍历字符串中的字符并将它们添加到具有以下逻辑的另一个字符串中:
- 如果该字符是小写字符 ([a-z]),则只需将其按原样添加到另一个字符串;但是...
- 如果字符是大写或者它是一个数字([0-9][A-Z]),则将一个空格附加到另一个字符串,然后将其添加到另一个字符串(所以,
" ${theChar}")- 例外是如果字符串中的第一个字符是大写或数字,那么我们只需将其添加到另一个字符串,同样,原样
- 我无法使用任何第三方库,例如 Commons Lang/WordUtils 等。
我最好的尝试并没有那么好:
// We want to convert this to: 'Well Hello There'
String startingStr = 'WellHelloThere'
String special = ''
startingStr.each { ch ->
if(ch == ch.toUpperCase() && startingStr.indexOf(ch) != 0) {
special += " ${ch}"
} else {
special += ch
}
}
更多示例:
Starting Str | Desired Output
======================================
'wellHelloThere' | 'well Hello There'
'WellHello9Man' | 'Well Hello 9 Man'
'713Hello' | '713 Hello'
有什么想法我会在这里出错吗?
【问题讨论】:
-
根据您的规则,我相信在第三种情况下所需的输出是 '7 1 3 Hello'。