0
public int cut(int b){
    String str1;
    b = 0;
    Scanner str = new Scanner(System.in);
    System.out.println("Write your string: ");
    str1 = str.next();
    Scanner in = new Scanner (System.in);
    System.out.println("Write a number: ");
    int num1 = in.nextInt();
    System.out.println("Write another number: ");
    int num2 = in.nextInt();
    System.out.println(str1.substring(num1, num2));
    return b;
}

これはこれまでの私のコードです。ユーザーが文字列を書き、入力したばかりの文字列をどこからどこまで切り取りたいかを書いてもらいたいです。私が取得できない部分は、その部分文字列を取得することです。

4

1 に答える 1

1

文字列にスペースがある場合。Scanner#nextLine()代わりに使用してください。

入力の場合、「自分の入力文字列」

str1 = str.next(); // returns "my" only

スペースは Scanner のデフォルトの区切り文字であるためです。行全体を読むには

str1 = str.nextLine(); // returns "my input string"

第二に、あなたはScanner str数字を読むことにまったく慣れていません。そのはず

int num1 = str.nextInt(); // instead of in.nextInt()

また、数値が範囲内にあることを確認するか、それ自体をキャッチする方がよいと思いますIndexOutOfBoundsException。ネガとそうでないものの世話をします。

try {
    System.out.println(str1.substring(num1, num2));
} catch (IndexOutOfBoundsException e) {
    System.out.println("Range specified is out of bounds for '" + str1 + "'");
}
于 2013-08-17T15:39:29.660 に答える