java - 返回字符串数组中的单词

标签 java arrays string methods return

我创建了一个方法来输出一个字符串。使用 split 方法和 for 循环,我将句子中的每个单词添加到一个字符串数组中,用“ed”替换每个单词的最后两个字母。现在,我的返回语句应该返回每个单词。当我使用 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;

}

最佳答案

您正在打印数组,但默认情况下数组没有正确实现 toString() 方法。 你所看到的是

"[Ljava.lang.String;@1b6235b"

这是[Ljava.lang.String;是String[].class的名字,java.lang.Class表示String数组的类,后面跟着它的hashCode。 为了打印数组,您应该使用 Arrays.toString(..)

System.out.println(Arrays.toString(myArray));

A good idea however, it returns my Strings in an Array format. My aim is to return them back into sentence format. So for example, if my input is, "Hey my name is Fred", it would output as, "Hed ed naed ed Fred". Sorry, I forgot to add that it also seperates it with commas when using Arrays.toString

然后您应该修改您的 processInfo() 以返回一个字符串或创建一个将您的 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();
}

关于java - 返回字符串数组中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22044525/

相关文章:

Python "Hangman"代码

sql - generate_subscripts 的第二个参数有什么作用?

python - 如何使用 for 循环反转此字符串

c# - 嵌套字符串插值

java - 多线程ArrayList迭代

java - Spring RequestBody 可选验证

java - 如何在 StatelessBean 中使用 ConversationScoped EntityManager

java - Java中的隐式 super 接口(interface)?

创建均匀分布的 double 值数组

c# - 检查一个字符串是否可以由C#中另一个字符串的字符组成