題目描述
字串就是許多字元的序列,這個題目會測試您對Java字串的了解。
字串的變數宣告的方式舉例如下:
String myString = "Hello World!"
字串的元素是很多字元。字元的數量為字串的長度,長度可以使用String物件提供的「length」方法來取得。
給兩個小寫的英文字串A和字串B,進行以下運算:
字串A和字串B長度的加總。
判斷字串A的辭典排序是否大於字串B。(換句話說,字串B在辭典內是否出現於字串A之後?)
將字串A和字串B的第一個字元轉成大寫,並將它們以空格來分隔,顯示在同一行中。
判斷字串A的辭典排序是否大於字串B。(換句話說,字串B在辭典內是否出現於字串A之後?)
將字串A和字串B的第一個字元轉成大寫,並將它們以空格來分隔,顯示在同一行中。
原題網址
輸入格式
輸入兩個字串,第一個是字串A,第二個是字串B。他們都是由小寫英文字母組成的字,不一定會放在同一行中。
輸出格式
有三行資料要輸出。第一行為字串A和字串B的總和;第二行為字串A的辭典排序是否大於字串B;第三行要將字串A和字串B的第一個字元轉成大寫,並將它們以空格來分隔,顯示在同一行中。
範例輸入
hello
java
java
範例輸出
9
No
Hello Java
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));
}
}