我使用size函数的循环中的部分不起作用。我也试过使用长度函数。
The error that I get is Size() is not available for Java.Lang.String
String cPersonFirstName = nvl(PersonFirstName,'');
String[] substringsNoSpace = cPersonFirstName.split(" ");
println ("This is the output " + substringsNoSpace );
String message = ''
for (int i = 0; **i <SubstringsNoSpace.size()** ; i++) {
Integer x = substringsNoSpace[i].length();
def currentWord=substringsNoSpace[i] ;
println (" "+ x+ " " + currentWord )
message += substringsNoSpace[i].substring(0,1).toUpperCase().concat(substringsNoSpace[i].substring(1, x).toLowerCase())+ " ";
}
println (message);
setAttribute ('PersonFirstName',message );
答案 0 :(得分:1)
这与您正在修改的变量不同......
您使用小写substringsNoSpace
声明了s
,并且您尝试使用大写SubstringsNoSpace
修改s
。
答案 1 :(得分:0)
我同意@Igor Artamonov,但我相信你的问题在于:
for(int i = 0; i; i ++){
SubstringsNoSpace是一个数组,所以你应该使用SubstringsNoSpace.length
答案 2 :(得分:0)
以更加时髦的方式,您的代码可能如下所示:
String cPersonFirstName = nvl(PersonFirstName, '')
String[] substringsNoSpace = cPersonFirstName.split(' ')
println "This is the output $substringsNoSpace"
String message = substringsNoSpace.collect {
println "${it.length()} $it"
it.substring(0,1).toUpperCase() + it.substring(1).toLowerCase()
//btw, it can be replaced with this:
//it.capitalize()
}.join(' ')
println message
setAttribute ('PersonFirstName', message)