について質問がありindexOf()
ます。EmailExtractor
ユーザーが入力した文から電子メール アドレス全体を抽出する (はい、これは宿題ですが、コードは探していません) をプログラムしようとしています。
例 -
ユーザー入力: abc@def.ghi.jk にクエリをメールで送信してください。
プログラムは、上記のabc@def.ghi.jkString
を表示します。私は理解indexOf()
し、substring()
必要とされています。
私が今持っているアイデアはindexOf()
、「@」を見つけるために使用し、ユーザーが入力した電子メールアドレスの直前の空白を検索することです (n 番目)。
私のコードは次のとおりです。
System.out.println("This is an Email Address Extractor.\n");
System.out.print("Enter a line of text with email address: ");
String emailInput = scn.nextLine();
int spaceAt = emailInput.indexOf(" ");
for (int i = 1; i <= emailInput.indexOf("@"); i++){
if (spaceAt < emailInput.indexOf("@")) {
spaceAt = emailInput.indexOf(" ", spaceAt + 1);
}
}
私は自分のコードの問題を理解し、認識しています。
1)"Mail us at abc@def.ghi.jk with your queries".indexOf(" ")
は 4 です。10 を取得しようとしています。しかし、入力した IF 条件により、25 である indexOf() の次のインスタンスにスキップされます (10 < 14 のため)。
これが起こらないようにするにはどうすればよいですか?
繰り返しますが、私は純粋に答えを探しているのではなく、解決策を回避しようとしています。前もって感謝します!