我创建了一个输出String的方法。使用split方法和for循环,我将句子中的每个单词添加到一个String数组中,用" ed"替换每个单词的最后两个字母。现在,我的return语句应该返回每个单词。当我使用System.out.print时,它工作。当我使用return并在main方法中调用它时,我得到了这个输出:" [Ljava.lang.String; @ 1b6235b"
这个错误看起来很简单,但我不知道自己要去哪里。任何帮助,将不胜感激。
这是我的方法:
public String[] processInfo() {
String sentence = this.phrase;
String[] words = sentence.split(" ");
if (!this.phrase.equalsIgnoreCase("Fred")) {
for (int i = 0; i < words.length; i++) {
words[i] = words[i].substring(0, words[i].length() - 2).concat(
"ed ");
// System.out.print(words[i]);
}
}
return words;
}
答案 0 :(得分:3)
您正在打印数组,但默认情况下,数组没有toString()
方法的正确实现。
你看到的是
“[Ljava.lang.String; @ 1b6235b”
这是[Ljava.lang.String;
是String [] .class的名称,java.lang.Class表示String数组的类,后跟hashCode。
要打印数组,您应该使用Arrays.toString(..)
System.out.println(Arrays.toString(myArray));
然而,一个好主意,它以数组格式返回我的字符串。我的目标 是将它们恢复为句子格式。所以,例如,如果我的 输入是,“嘿,我的名字是弗雷德”,它将输出为“Hed ed naed ed 弗雷德“。抱歉,我忘了添加它也用逗号分隔它 当使用Arrays.toString
时
然后你应该修改你的processInfo()返回一个String或者创建一个将String[]
转换为String的新方法。
示例:
//you use like this
String [] processInfoArray = processInfo();
System.out.println(myToString(processInfoArray));
// and in another part you code something like this
public static String myToString(String[] array){
if(array == null || array.length == 0)
return "";
StringBuilder sb = new StringBuilder();
for(int i=0;i<array.length-1;i++){
sb.append(array[i]).append(" ");
}
return sb.append(array[array.length -1]).toString();
}
答案 1 :(得分:1)
我可以从你的问题和评论中得到的结论是,你的目标是将它们恢复为句型。例如,如果您的输入是“嘿,我的名字是弗雷德”,那么它将输出为“Hed ed naed ed Fred”。
在这种情况下,您应该返回一个String,而不是一个数组。我已经修改了你的方法了。如果你想要别的东西,请告诉我。
public String processInfo() {
String sentence = this.phrase;
String[] words = sentence.split(" ");
if (!this.phrase.equalsIgnoreCase("Fred")) {
sentence = "";
for (int i = 0; i < words.length; i++) {
words[i] = words[i].substring(0, words[i].length() - 2).concat(
"ed ");
sentence += " " + words[i];
// System.out.print(words[i]);
}
}
return sentence.trim();
}
答案 2 :(得分:0)
您对System.out.print的注释调用是从循环内部打印数组的每个元素。你的方法返回一个String []。当您尝试打印数组时,您将看到数组的java表示。您需要更改构建方法并返回一个字符串,其中所有数组条目连接在一起,或者您的调用代码需要遍历返回的数组并打印每个条目。