Java传入String[]调用tokenize方法报错,不解为何参数被判定为String
问题分析与解决
错误原因
你误解了报错信息——系统并没有把arr判定为String类型,而是你的tokenize方法实际定义的是接收单个String参数,但你传入的是String[](字符串数组),参数类型不匹配才触发了这个错误。报错里的The method tokenize(String) in the type ReadingScore is not applicable for the arguments (String[])意思是:ReadingScore类中的tokenize(String)方法,无法接收String[]类型的参数。
解决方法
根据你的需求选择对应的方案:
修改方法以支持接收String数组
如果你确实需要tokenize方法处理String[]参数,调整方法的定义:// 假设返回类型是String,根据实际情况修改 public static String tokenize(String[] arr) { // 这里编写处理字符串数组的逻辑 StringBuilder result = new StringBuilder(); for (String s : arr) { result.append(s).append(" "); } return result.toString().trim(); }这样你的main方法调用
tokenize(arr)就可以正常运行了。遍历数组逐个调用原方法
如果tokenize方法本来就是用来处理单个字符串的,那你需要遍历数组,对每个元素调用该方法:public static void main(String[] args) { String[] arr = {"I", "went", "to", "the", "park", "at", "2:30", "and", "saw", "a", "dog.", "It", "barked!"}; for (String str : arr) { System.out.println(tokenize(str)); } }
内容的提问来源于stack exchange,提问作者Emma Cheney
相关产品推荐
相关产品推荐

