我有一个关于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 条件将导致它跳到 indexOf() 的下一个实例,即 25。(因为 10 < 14)。
我该如何避免这种情况发生?
再一次,我不是在寻找纯粹的答案,而是在尝试解决解决方案。提前致谢!