如何在java中将每个单词与字符串分开?

时间:2013-11-02 01:39:41

标签: java string

我的一个AP项目包括将每个单词从一个字符串中分离出来,我已经尝试过无数次但没有成功!我的班级尚未学习阵列,正则表达式或拆分,所以如果你可以提供帮助,请避免任何这些。但是我们确实学习了substring,charAt,indexOf,length,trim ......

这是我的一次尝试: (请注意,为了让我真正注意到我已将它们分开,我尝试将N添加到我正在重新创建的字符串中,这是newWord)

public class Functions {
public static String stringReversal(String word){
    if (word.length() <= 1){
        return word;
    }else{
        char c = word.charAt(0);
        return stringReversal(word.substring(1)) + c;
    }
}

public static Boolean palindrome(String word){
    Boolean palindrome;
    if (word.equalsIgnoreCase(stringReversal(word))){
        return palindrome = true;
    } else{
        return palindrome = false;
    }
}

public static String pigLatin(String sentence){
    if(sentence.length() <= 1){
        return sentence;
    } else {
       String newWord = "";
       return newWord += pigLatin(sentence.substring(0, sentence.indexOf(" "))) + " N ";
    }
}

}

主要:

public class Main {
public static void main (String [] args){
    Scanner in = new Scanner(System.in);
    String word = in.nextLine();
    System.out.println(Functions.test(word));
   }
} 

但是输出只打印N!任何人都可以请求帮助,并展示一种我可以实现这一目标的方法,我已经尝试了许多想法,但没有任何效果。

3 个答案:

答案 0 :(得分:0)

由于这似乎与家庭作业有关,我只会发布一些提示和建议,你必须结合我的提示和建议来自己提出解决方案。

我相信这个: sentence.indexOf("") 应该是这样的:sentence.indexOf(" ")

检查indexOf空字符串没有多大意义(它总是返回零,因为在字符串中的任何地方都可以找到空字符串)。

public static void main(String[] args) {
    String word = "a bit of words";
    System.out.println(test(word));
}

public static String test(String sentence){
    if(sentence.length() <= 1){
        return sentence;
    } else {
        String newWord = "";
        return newWord += test(sentence.substring(0, sentence.indexOf(" "))) + " N ";
    }
}

以上版画:a N

但是,如果您的输入只有一个单词,那么sentence.indexOf(" ")将返回-1。你需要检查一下。建议:修改if语句,以检查字符串是否包含空格字符。

要解决赋值,你需要某种循环(递归也可以是一种循环)来为每个单词重复一个略微修改的过程。提示:获取第一个单词,然后获取除提取的单词之外的原始字符串。

答案 1 :(得分:0)

public static void main( String[] args )
{
    Scanner in = new Scanner( System.in );
    try
    {
        while( true )
        {
            String word = in.nextLine();
            System.out.println( splitWords( word ) );
        }
    }
    finally
    {
        in.close();
    }

}

private static String splitWords( String s )
{
    int splitIndex = s.indexOf( ' ' );
    if( splitIndex >= 0 )
        return s.substring( 0, splitIndex ) + " N " + splitWords( s.substring( splitIndex + 1 ) );
    return s;
}

答案 2 :(得分:-1)

您可以使用标准方法String#split()

String[] words = sentence.split(' ');

注意,单词是数组