プロが教える店舗&オフィスのセキュリティ対策術

Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの文字列を再入力するプログラム」が分かりません。結果として 、
文字列を入力 din9hu
d>i>n>
という風にして出力されて欲しいのですが、文字列部分が9以降も表示されてしまうんです。
(d>i>n>9>h>u)

自分の書いたコードは
Scanner ~
String moji ~
for(int i=0; i<moji.length();i++)
if(!(moji.equals(“9”)))
System.out.print(miji.charAt(i)+”>”)
です。

教えて欲しいです!!

A 回答 (1件)

あなたのコードに修正点があります。

`if(!(moji.equals("9")))` という行は、文字列 `moji` が文字列 `9` と等しくないことをチェックしています。しかし、あなたは文字列 `moji` を再入力したいので、この条件は満たされません。

正しいコードは次のとおりです。

```
Scanner sc = new Scanner(System.in);
System.out.println("文字列を入力してください。");
String moji = sc.next();

for (int i = 0; i < moji.length(); i++) {
if (moji.charAt(i) == '9') {
break;
}
System.out.print(moji.charAt(i) + ">");
}
```

このコードでは、まず `Scanner` クラスのオブジェクトを作成して、ユーザーからの入力を取得します。次に、ユーザーからの入力を `String` 型の変数 `moji` に格納します。

その後、 `for` ループを使用して、文字列 `moji` の各文字をチェックします。もし、文字列 `moji` の文字が `9` と等しい場合は、ループを終了します。そうでない場合は、文字列 `moji` の文字を出力します。

このコードを実行すると、次のようになります。

```
文字列を入力してください。
din9hu
d>i>n>
```
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!