Java Groovy-无法在阵列上使用size()或length函数-Oracle销售云

Java Groovy-无法在阵列上使用size()或length函数-Oracle销售云,java,groovy,Java,Groovy,循环中使用size函数的部分不起作用。我也尝试过使用长度函数 字符串cPersonFirstName=nvl(PersonFirstName,”) String[]substringsNoSpace=cPersonFirstName.split(“”); println(“这是输出”+子字符串空间); 字符串消息=“” 对于(int i=0;**i我同意@Igor Artamonov,但我相信你的问题是: for(int i=0;i;i++){ SubstringsNoSpace是一个数组,因此

循环中使用size函数的部分不起作用。我也尝试过使用长度函数

字符串cPersonFirstName=nvl(PersonFirstName,”)

String[]substringsNoSpace=cPersonFirstName.split(“”);
println(“这是输出”+子字符串空间);
字符串消息=“”

对于(int i=0;**i我同意@Igor Artamonov,但我相信你的问题是:

for(int i=0;i;i++){


SubstringsNoSpace是一个数组,因此您应该使用SubstringsNoSpace.length,它与您要修改的变量不同


您用小写的
s
声明了
substringsNoSpace
,并试图用大写的
s
修改
substringsNoSpace
,您的代码可能看起来像:

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) 

提供的代码看起来不像真正的代码。但是如果你提供有效的代码,一个抛出此错误的真正代码,那么我们将能够帮助你嗨,谢谢你的回答。这是我正在使用的真实代码。这是我关于stackoverflow的第一个问题。请你帮助我理解你正在寻找的代码的格式。这段代码很简单无效,我无法编译它。您在
substringsNoSpace
变量中有数组,但对循环使用了
substringsNoSpace
。没有关于第二个变量的信息,但错误表明最后一个变量是
字符串
,而不是
String[]
。另外,
**i而且java中没有这样的包:
java.Lang.String
。下面是确切的错误-表达式“PersonDEO”触发器“DT_FirstNameCapsCreate”中的异常:groovy.Lang.MissingPropertyException:没有这样的属性:类的长度:[Ljava.Lang.String;可能的解决方案:PersonDEO”触发器的长度“DT_FirstNameCapsCreate”第15行错误无此类属性:类的长度:[Ljava.lang.String;可能的解决方案:length……嗨,Grady,感谢您的快速响应..是的,问题只是在循环部分,问题是当我给出SubstringsNoSpace.length时,它抛出了一个错误,表示length函数不能与Java.lang.StringString cPersonFirstName=nvl(PersonFirstName,”);String[]substringsNoSpace=cPersonFirstName.split(“”);字符串消息=“”用于(int i=0;i
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 );
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)