把第一个单词移到句子的末尾?

时间:2013-07-04 20:49:43

标签: java string

这是整个问题的SS。 http://prntscr.com/1dkn2e 它应该适用于任何句子而不仅仅是示例中给出的句子 我知道它必须用字符串做一些事情。我们的教授已经完成了这些字符串方法 http://prntscr.com/1dknco

这只是一个基本的java类,所以不要使用任何复杂的东西 这就是我所拥有的,不知道在此之后该怎么做 任何帮助将不胜感激。

 public static void main(String[] args)
 {
      Scanner keyboard = new Scanner(System.in);    
      System.out.println("Enter a line of text. No punctuaton please");
      String sentence = keyboard.nextLine();
      System.out.println(sentence);
    }
}

4 个答案:

答案 0 :(得分:2)

您可以使用public String[] split(String regex)

splitted = sentence.split("\\s+"); 
  • splitted[0]是第一个字。
  • splitted[splitted.length - 1]是硬道理。

由于你不允许使用String#split,你可以这样做:

myString = myString.substring(0, myString.lastIndexOf(" ")) + firstWord; 

通过这样做,您将拥有一个substring,其中包含没有最后一个单词的句子。 (要提取第一个单词,您可以使用String#indexOf

firstWord是你之前提取的第一个词(我不会为你解决整个问题,尝试自己做,现在应该很容易)

答案 1 :(得分:0)

好像你正在寻找非常简单的字符串算术。 所以这是我能做的最简单的事情:

      // get the index of the start of the second word
      int index = line.indexOf (' ');
      // get the first char of the second word
      char c = line.charAt(index+1);
      /* this is a bit ugly, yet necessary in order to convert the
       * first char to upper case */
      String start = String.valueOf(c).toUpperCase(); 
      // adding the rest of the sentence
      start += line.substring (index+2);
      // adding space to this string because we cut it
      start += " ";
      // getting the first word of the setence
      String end = line.substring (0 , index);
      // print the string
      System.out.println(start  + end);

答案 2 :(得分:0)

试试这个

String str = "Java is the language";
String first = str.split(" ")[0];
str = str.replace(first, "").trim();
str = str + " " + first;
System.out.println(str);

答案 3 :(得分:-1)

这是另一种可以做到这一点的方法。 更新:没有循环

              Scanner keyboard = new Scanner(System.in);    
      System.out.println("Enter a line of text. No punctuaton please");
      String sentence = keyboard.nextLine();
      System.out.println(sentence);
      int spacePosition = sentence.indexOf(" ");
      String firstString = sentence.substring(0, spacePosition).trim();
      String restOfSentence = sentence.substring(spacePosition, sentence.length()).trim();
      String firstChar = restOfSentence.substring(0, 1);
      firstChar = firstChar.toUpperCase();
      restOfSentence = firstChar + restOfSentence.substring(1, restOfSentence.length());
      System.out.println(restOfSentence + " " + firstString);
      keyboard.close();