-2

ここで、解決する必要がある 2 つの問題があります。まず、ここに私のプログラムがあります。ここでは、ユーザーの入力が何であれ、文字列に保存され、配列に配置されるようにします。

私のコード:

String words;
    String replaced_words;

    Scanner s = new Scanner (System.in);

        System.out.println("Enter a line of words basing on an event, verse, place or a name of a person.");
        words = s.nextLine();
        System.out.println("Word accepted!");
        //using char array method
        char [] c = words.toCharArray();

ここで、次のような文字列に replace メソッドを使用しました。

String replace = words.replace(' ', '-');

しかし問題は、これがエラーとして発生することです。「 」文字を次のような単語に置き換えます。

String replace = words.replace(words, '-')

単語の文字数に応じてハイフンの長さを制限したいのですが。

このプログラムの出力は次のようになります。 · 各文字がハイフン (-) に置き換えられ、各スペースがアンダースコア (_) に置き換えられた配列に、この文字列のコピーを作成します。記号と数字は表示されたままです。

私が得ている問題は、それらがハイフンとアンダースコアに置き換えられないことです。スキャナーで入力したばかりの入力テキストが表示されるだけです。

4

1 に答える 1

0

目標を達成するには、次を使用できます。

    String word = "AB CD EF";
    String replace = word.replace(' ' , '-').replaceAll("[^\\-]", "_");
    System.out.println(replace); // prints "__-__-__"

アンダースコアの間にスペースが必要な場合(それらを互いに区別するため)、使用できます

    for (int i = 0; i < replace.length(); i++) {
        System.out.print(replace.charAt(i) + " ");
    }
    // prints "_ _ - _ _ - _ _ "
于 2012-11-27T13:10:37.047 に答える