Java代码中str.length与getNumericValue函数无法识别如何解决?
问题修复方案
报错点根因
str.length未识别:Java中String类获取字符串长度是成员方法,不是属性,必须带括号调用,正确写法为firstWord.length()、secondWord.length()。getNumericValue未识别:该方法是java.lang.Character类的静态方法,调用时必须指定类名前缀,正确写法为Character.getNumericValue(字符参数),即使导入java.lang.*也无法省略类名直接调用静态方法。
其他需同步修正的问题
- 局部变量
value4、value6未初始化就直接执行累加操作,会触发编译报错,需给两个变量赋值初始值0。 - 第二个、第三个for循环内错误使用索引变量
i,应替换为当前循环的变量j;第三个遍历targetWord的循环判断条件错误使用了second(secondWord的长度),需替换为targetWord的长度。 - main方法中
targetWord = ("aab")末尾缺失分号,boolean value;;多写了一个冗余分号。
修正后可正常运行的代码
import java.lang.*; public class Practice { public boolean isSumEqual(String firstWord, String secondWord, String targetWord) { int first, second, targetLen, i, j, value, value2, value3, value4, value5, value6; first = firstWord.length(); second = secondWord.length(); targetLen = targetWord.length(); value = 0; value2 = 0; value4 = 0; value6 = 0; char[] charArray = firstWord.toCharArray(); char[] charArray2 = secondWord.toCharArray(); char[] charArray3 = targetWord.toCharArray(); for(i = 0; i < first; i++) { value = Character.getNumericValue(charArray[i]); value2 = value2 + value; } for(j = 0; j < second; j++) { value3 = Character.getNumericValue(charArray2[j]); value4 = value4 + value3; } for(j = 0; j < targetLen; j++) { value5 = Character.getNumericValue(charArray3[j]); value6 = value6 + value5; } return (value2 + value4) == value6; } public static void main(String[] args){ Practice example = new Practice(); String firstWord = "aaa"; String secondWord = "a"; String targetWord = "aab"; boolean value; value = example.isSumEqual(firstWord, secondWord, targetWord); System.out.println(value); } }
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

