0

你好我的任务是交换第一个词和最后一个词并将第一个词的第一个字母大写

说我输入

一二三四

我的输出结果是

四二三四一

这是我的代码我是初学者,所以请放轻松

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();
        }
    }
}

我不知道我的错误在哪里,或者我是否忘记了什么..

4

1 回答 1

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();
}

}

于 2016-09-16T01:22:13.260 回答