// 標準入力から1つ文字列を入力し、その文字列のインデックス3から10の部分文字列を取り出すプログラム // どんな文字列が入力されても、部分文字列を取り出せるプログラムにすること
// ※Ex. 「abc」のようにインデックスが10まで存在しない文字列が入力されれば、入力しなおしを求める import java.io.*; public class StringIndex { public static void main(String[] args) { // inputStr: 標準入力から入力された文字列 // subStr: inputStrのインデックス3から10の部分文字列 String inputStr, subStr; try { System.out.println("入力された文字列の部分文字列を作成します。文字列を1つ入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); inputStr = br.readLine(); // 文字列を入力 int code = 0; while (code == 0) { try { subStr = inputStr.substring(3, 10); // 部分文字列を取出し System.out.println("取り出した部分文字列: " + subStr); code = 1; } catch(StringIndexOutOfBoundsException e) { // inputStrのインデックスが10未満の時、例外が発生するので、その例外処理 System.out.println("「" + inputStr + "は文字数が" + inputStr.length() + "しかありません。"); System.out.println("文字数が11以上ある文字列を入力してください。"); inputStr = br.readLine(); // 文字列の入力しなおし } } } catch(IOException e) { // 標準入力ができなかったときの例外処理 System.out.println("標準入力から数が入力されませんでした"); } } }