たいちっち

競技プログラミングをしています

【Java】文字の連結(B - i18n)

解いた問題

AtCoderの「B - i18n

提出した回答1
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        sc.close();
        String start = String.valueOf(S.charAt(0));
        String end = String.valueOf(S.charAt(S.length() -1));
        String inner = String.valueOf(S.length()-2);
        System.out.println(start + inner + end);
    }
}

valueOf(char c)・valueOf(int i)で、文字列表現を返す。
強引なやり方な気がする。

実行時間は103msだった。

提出した回答2
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String S = sc.next();
        sc.close();

        StringBuilder sb = new StringBuilder();
        sb.append(S.charAt(0)).append(S.length()-2).append(S.charAt(S.length()-1));
        System.out.println(sb);

    }
}

StringBuilderを作成して、それに1つずつ追加する。

実行時間は98msだった。

TODO
  • 他のA,B問題を解く

 

おわり。。