2016-09-16 57 views
0

你好,我的任务是交换的第一个和最后一个字和大写第一个单词的第一个字母交换和更改脚本

说我输入

一二三四

我的输出原来是

fourTwo 3 fourone

这里是我的代码 我是初学者所以请大家容易

import java.util.Scanner; 
public class tryNumber2 { 

    public static void main(String[] args) 

    { 
     Scanner keyboard = new Scanner(System.in); 
     System.out.println("Enter any line with no punctuation"); 
     String line = keyboard.nextLine(); 
     System.out.println(line); 

     // First word to the end and capitalize. 
     { 
      int spacePosition = line.indexOf(" "); 
      String FirstWord = line.substring(0, spacePosition).trim(); 
      String MiddleOfSentence = line.substring(spacePosition, line.length()).trim(); 
      String FirstChar = MiddleOfSentence.substring(0, 1); 
      FirstChar = FirstChar.toUpperCase(); 
      MiddleOfSentence = FirstChar + MiddleOfSentence.substring(1, MiddleOfSentence.length()); 
      String LastWord = line.substring(line.lastIndexOf(' ') + 1); 
      System.out.println(LastWord + MiddleOfSentence + FirstWord); 
      keyboard.close(); 
     } 
    } 
} 

我不知道我的错误,或者如果我忘了什么东西..

回答

0

尝试这个

public static void main(String[] args) { 
    Scanner keyboard = new Scanner(System.in); 
    System.out.println("Enter any line with no punctuation"); 
    //trim() removes all leading and trailing whitespaces in Java. This will be useful for 
    //the check we will perform next 
    String line = keyboard.nextLine().trim(); 
    int firstWordPos = line.indexOf(" "); 
    String firstWord = line.substring(0,firstWordPos); 

    int lastWordPos = line.lastIndexOf(" "); 

    if (lastWordPos < 0) 
    { 
     System.out.println(line); 
    } 

    else if(firstWordPos != lastWordPos) { 
     String lastWord = String.valueOf(line.charAt(lastWordPos + 1)).toUpperCase() + 
       line.substring(lastWordPos + 2); 

     String outputString = lastWord + " " + line.substring(firstWordPos+1, lastWordPos) + " " + firstWord; 
     System.out.println(outputString); 
    } 
    else { 
     String lastWord = String.valueOf(line.charAt(lastWordPos + 1)).toUpperCase() + 
       line.substring(lastWordPos + 2); 

     String outputString = lastWord + " " + line.substring(0, lastWordPos); 
     System.out.println(outputString); 
    } 
    keyboard.close(); 
} 

}

+0

有点作品,但它不交换第一个和最后一个单词 – Beginner

+0

哦,对不起,我认为你只需要追加最后一个词并将其大写。我读错了你的问题。修复了OP中的代码! – jmc