Groovy-无法在阵列-Oracle Sales Cloud上使用size()或length函数

时间:2015-05-06 04:02:51

标签: java groovy

  

我使用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 );

3 个答案:

答案 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.su‌​bstring(1).toLowerCase()  
  //btw, it can be replaced with this:
  //it.capitalize()       
}.join(' ')

println message 
setAttribute ('PersonFirstName', message)