題目描述

字串就是許多字元的序列,這個題目會測試您對Java字串的了解。



字串的變數宣告的方式舉例如下:

String myString = "Hello World!"

字串的元素是很多字元。字元的數量為字串的長度,長度可以使用String物件提供的「length」方法來取得。

給兩個小寫的英文字串A和字串B,進行以下運算:

字串A和字串B長度的加總。
判斷字串A的辭典排序是否大於字串B。(換句話說,字串B在辭典內是否出現於字串A之後?)
將字串A和字串B的第一個字元轉成大寫,並將它們以空格來分隔,顯示在同一行中。

原題網址

輸入格式

輸入兩個字串,第一個是字串A,第二個是字串B。他們都是由小寫英文字母組成的字,不一定會放在同一行中。

輸出格式

有三行資料要輸出。第一行為字串A和字串B的總和;第二行為字串A的辭典排序是否大於字串B;第三行要將字串A和字串B的第一個字元轉成大寫,並將它們以空格來分隔,顯示在同一行中。

範例輸入

hello
java

範例輸出

9
No
Hello Java

額外解釋

字串A是「hello」,字串B是「java」。
字串A的長度是5,字串B的長度是4,所以長度總和是9。
字串A第一個英文字母的「h」比字串B第一個英文字母的「j」還要來的前面,所以字串A的辭典排序並未大於字串B。
將字串A第一個英文字母的「h」改成「H」,字串B第一個英文字母的「j」改成「J」,將兩個字串中間以空格做分隔,組合成「Hello Java」。

解題概念

String物件的「length」方法可以取得字串的長度,「compareTo」方法可以進行辭典排序的比較,「concat」方法可以連接字串。

要將字串的第一個英文字母改成大寫,可以先將這個字串拆成兩個子字串,可以使用String物件提供的「substring」方法來做到。第一個子字串就是原字串的第一個字母,使用String物件的「toUpperCase」方法可以將小寫英文字母轉成大寫的。將修改後的第一個子字串串接上第二個子字串,就可以組回第一個英文字母變成大寫的原字串。

參考答案

import java.util.Scanner;

public class Solution {

    public static void main(final String[] args) {
        final Scanner sc = new Scanner(System.in);
        final String A = sc.next();
        final String B = sc.next();

        System.out.println(A.length() + B.length());
        System.out.println(A.compareTo(B) > 0 ? "Yes" : "No");
        System.out.println(firstToUpper(A).concat(" ").concat(firstToUpper(B)));
    }

    private static String firstToUpper(final String s) {
        return s.substring(0, 1).toUpperCase().concat(s.substring(1));
    }
}