【问题标题】:How to print part of a String from an array (Java)?如何从数组(Java)中打印字符串的一部分?
【发布时间】:2021-12-23 02:18:55
【问题描述】:

您好,我是 Java 的初学者,但遇到了问题。在下面有一组固定的客人列表的代码中,我如何打印这些人的电子邮件?电子邮件必须包含 3 个名字数字和两个姓氏数字,然后是 @guest.com。所以它看起来像这样:

adaro@guest.com

thost@guest.com

在这个任务中,我必须使用方法:substring、split、toLowerCase。 对不起,我的英语并不完美。请帮助我试图解决这个问题,但我无法管理它。

public class email {

    public static void main(String[] args) {

        String[] guests =  {      "Rock Adam", 
                                  "Stewart Thomas", 
                                  "Anderson Michael",
                                                   };
    }
}

【问题讨论】:

  • 你坚持哪一点?它们是在一个数组中,还是提取部分字符串?
  • 我不知道如何提取和打印字符串的一部分。打印 adaro@guest.com 之类的电子邮件
  • String.split 允许您围绕分隔符拆分字符串 - 在您的情况下,您可以使用它来分隔名字和名字。 String.substring 允许您仅获取字符串的一部分,例如前几个字母。

标签: java arrays string


【解决方案1】:

当你陷入这种困境时,试着一点一点地分解问题。

您是说您不知道如何提取部分字符串,但也不知道如何打印。我很想给你书面说明,而不是你问题的完整答案,因为这样你才能学得更好。

  1. 您需要为 String[] 数组中的每个字符串构造此电子邮件。在这里寻找迭代java中的数组,例如https://www.geeksforgeeks.org/iterating-arrays-java/
  2. 对于这种“Rock Adam”形式的每个字符串,您需要提取姓氏和姓氏。为此,您需要用空格" " 分割字符串。怎么做 - How to split a String by space
  3. 当你用空格分割时,你会得到另一个包含两个元素的数组,第一个是姓氏,第二个是名字。使用数组索引来访问它们。
  4. 当您访问firstName 时,您的下一个问题是 - 我如何获取该字符串的前 3 个字符。如何访问 3rd 或 2nd 是同样的问题,请参阅如何在此处执行此操作 Extract first two characters of a String in Java
  5. 现在您已经有了想要知道如何连接和打印它们的子字符串。如何打印多个变量?答案在这里How to print multiple variable lines in Java。此外,对于将字符串转换为小写,您可以在这里找到答案https://www.w3schools.com/java/ref_string_tolowercase.asp

尝试在此之后自己做更多的工作,你会学到比复制粘贴别人免费直接给你的东西更多的东西。

【讨论】:

    【解决方案2】:

    较低的代码可以解决您的问题。 String.split(" ") 在第一次出现空格时拆分字符串。它返回一个字符串数组,其中包含名称的两个部分。使用 String.substring() 可以获得字符串的特定部分。

    public static void main(String[] args) {
        String[] guests =  {"Rock Adam",
                "Stewart Thomas",
                "Anderson Michael"};
        for(String guest : guests){
            String[] name = guest.split(" ");
            String email = name[1].substring(0,3).toLowerCase() + name[0].substring(0,2).toLowerCase() + "@guest.com";
            System.out.println(email);
        }
    }
    

    【讨论】:

      【解决方案3】:

      下面的代码正是你要找的(我猜)

              String[] guests =  {      "Rock Adam", 
                                        "Stewart Thomas", 
                                        "Anderson Michael",
                                                         };
      
              List<String> emailIdList = new ArrayList<>();
              for (String guest : guests) {
                  String firstName = guest.split(" ")[1];
                  String lastName = guest.split(" ")[0];
      
                  String emailId = firstName.substring(0,2) + lastName.substring(0,1) + "@guest.com";
                  emailIdList.add(emailId);
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-05
        • 1970-01-01
        • 1970-01-01
        • 2014-05-25
        • 2020-09-15
        • 1970-01-01
        相关资源
        最近更新 更多