gpt4 book ai didi

java - 在不使用拆分或循环的情况下使用 IndexOf 和子字符串拆分字符串

转载 作者:行者123 更新时间:2023-11-30 12:04:07 24 4
gpt4 key购买 nike

假设我有一个电子邮件地址。喜欢:kate.daniels@somecompany.com。
我需要在不使用拆分或循环的情况下将其拆分。而且我需要将 IndexOf 与 substring 结合使用,而不是使用循环(这将在我首先对此有深刻的理解之后出现)。

但是在理解电子邮件地址格式的情况下查看此电子邮件地址:(firstName + "."+ lastName + "@"+ companyName + ".com")

emailAddress = input.nextLine();
// This is where I have issues.
firstName = emailAddress.substring(emailAddress.IndexOf(".") );

// How do I get this to be just the last name and not lastName + "@somecompany.com"
lastName = emailAddress.substring(emailAddress.IndexOf(".") + 1);

// And how do I get the company name without the ".com"
companyName = emailAddress.substring(emailAddress.IndexOf("@") + 1);

感谢您提供的任何帮助。我可以看出这将非常有帮助并且愿意学习。

我已经浏览过,但没有看到对我的问题的答复。

最佳答案

在这种情况下,您可以这样做:

String emailAddress = "kate.daniels@somecompany.com";
String firstName = emailAddress.substring(0, emailAddress.indexOf('.'));
String lastName = emailAddress.substring(emailAddress.indexOf('.') + 1, emailAddress.indexOf('@'));
String companyName = emailAddress.substring(emailAddress.indexOf('@') + 1, emailAddress.lastIndexOf('.'));
System.out.println("Firstname: " + firstName + "\nLastname: " + lastName + "\nCompany: " + companyName); //Print them

输出:

Firstname: kate
Lastname: daniels
Company: somecompany

Substring 需要两个参数来获取范围、开始和结束索引。只有一个单个 参数的Substring 假定该参数是起始索引,并返回从该位置开始的String 的其余部分。 See the documentation here.

请注意 substring 的开始索引是包容性的,因此对于 lastNamecompanyName 我需要放置 +1 从结果中排除 .@

另一个需要注意的重要事项是对于 emailAddress 我必须使用 lastIndexOf(".") 因为 String 中有两个句点> 这将确保您得到最后一个 substring 正确的范围。通常 indexOf 返回第一个出现的地方。

关于java - 在不使用拆分或循环的情况下使用 IndexOf 和子字符串拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57277885/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com