在用户要求的短语中查找单词,不使用split或StringTokenizer

问题描述 投票:0回答:1

我正在开发一个程序,要求用户输入短语和整数。整数用于标识从短语返回哪个单词。例如,如果他们输入5,则程序应将句子中的第五个单词返回给用户。

System.out.println("Your word is: " +combineString(phrase,numWord));

到目前为止,这是我的工作,有一个主输出,

public static String combineString(String newPhrase, int newNum) {
  int countWords = 0;
  String word = "";

  //words count. I'll +1 everytime using countWord the match the amount of words
  for(int i=0; i< newPhrase.length(); i++) {
     if(newPhrase.charAt(i) == ' ') {
        countWords++;             
     }
  }  

  //return the last word. Ex: 15 words in a phrase if user pick the 18th word it will return the 15th word.
  if(countWords+1 < newNum  || countWords+1 <= newNum) {
     word += newPhrase.substring(newPhrase.lastIndexOf(' ')+1, newPhrase.length()-1);
  }
  else if(newNum <=0) { //return null if the user pick 0 or less than 0
     word += null;   
  }           
  return word;

并且我在中间部分进行了很多思考,我的想法是,如果用户选择numWord = 5,那么为了返回该句子中的第五个单词,我需要使用“ newPhrase。 substring(space 4th +1,space 5th)”。这就是我坚持的地方,因为我不知道如何开始,也不知道如何到达太空4号。

java if-statement java.util.scanner counter static-methods
1个回答
0
投票
public static String combineString(String newPhrase, int newNum) {
     if(newNum<=0)
        return null;
     String word = "";
     String [] match = new String[newNum];

    int j =0;
    for(int i=0; i< newPhrase.length(); i++) {
        word = word + newPhrase.charAt(i);
        if(newPhrase.charAt(i) == ' ') {
        countWords++; 
        match[j] = word;
        if(j+1 == newNum) {
           return word; // returns the specified word
        } 
        j++;
        word = "";    
    }
  } 
  return word; //returns last word
}

此代码应为您工作。如果是这样,请接受答案。

热门问题
推荐问题
最新问题