字符串中的单词



我通常可以做到这一点,这是非常简单的代码,但是我有一个大脑的地狱,我渴望弄清楚自己的愚蠢。我很快就写了这本书,尝试了一个我听说的新IDE,它应该采用一个输入的字符串并以相反顺序返回单词,但是它一直告诉我,在某个时候,字符串的索引之一[]没有价值。

import java.util.StringTokenizer;  
import java.util.Scanner;  
public class Example {
    /**
     * @param args
     */
    public static void main(String[] args) {
        //set up input
        Scanner input=new Scanner(System.in);
        System.out.println("type something here");
        String sentence=input.nextLine();
        //set up StringTokenizer
        StringTokenizer tokens=new StringTokenizer(sentence);
        //setup for loop
        for(int y=tokens.countTokens()-1; y>=0; y--){
            String[] word={tokens.nextToken()};
            System.out.print(word[y]+" ");
        }


    }
}

错误在这里: String[] word={tokens.nextToken()}。您创建一个仅具有一个元素的数组 - 当前令牌。countTokens()也返回剩余的令牌。nextToken()被调用后,每次都会更新。

修复它:只需迭代所有令牌,将它们放入列表中,然后向后打印列表。

问题是字符串[] word = {tokens.nexttoken()}。

我认为您想要一些看起来像这样的东西:

 int totalTokens = tokens.countTokens()
 String[] word = new String[totalTokens]
 //setup for loop
 for(int y=totalToken-1; y>=0; y--){
     word[y] = tokens.nextToken();           
 }

不确定为什么您使用此 StringTokenizer只是为了逆转 string

btw your for loop仅运行一次,而 String[] in for loop仅容纳一个元素,即userInput(而不是用户input字符的数组),请参阅您是否可以找出您的问题方法...

public static void main(String[] args) {
        //set up input
        Scanner input=new Scanner(System.in);
        System.out.println("type something here");
        String sentence=input.nextLine();
        //set up StringTokenizer
        StringTokenizer tokens=new StringTokenizer(sentence);
        String tmpStr = tokens.nextToken();
        int tmp=tmpStr.length();
        for(int y=tmp-1; y>=0; y--){
            char[] word=tmpStr.toCharArray();
            System.out.print(word[y]+ " ");
        }
 }

此方法像下一步(令牌)一样起作用:

    public static void next (StringTokenizer tokens){
    String next = null;
    if (tokens.hasMoreTokens()){
        next = tokens.nextToken();
        next(tokens);
    } 
    if (next != null){
        System.out.println(next);
    }
}

相关内容

  • 没有找到相关文章

最新更新