需要程序查找空间并将变量提取到空间的左侧和右侧并打印出来我该怎么做?

问题描述

我正在编写一个程序,其中用户在一行中输入他们的姓氏和姓氏,并且空格之间用空格隔开。然后,程序将检测空间,并将姓氏和姓氏提取到不同的变量中以进行打印。

示例:假设用户在一行上输入了“ simon大厅”,它们之间有空间,我希望这样输出姓氏:Simon 姓:霍尔

我的代码(目前几乎没有用):(下面的输入/输出

import java.util.Scanner;

class Main {

  public static void main(String[] args) {
    Scanner scanner = new Scanner(system.in);

    System.out.println("Input forename and surname on one line (space included)");

    String fullName = scanner.next();

    String result = fullName;
    result = result.split(" ") [0];
    System.out.println(result);
    
   }
} 

**输入:zayaan khan(一行)

输出

zayaan **(我要打印 姓氏:Zayaan 姓:Khan)

谢谢;)

解决方法

逐行获取输入

String fullName = scanner.nextLine(); // line by line input getter

根据空间拆分字符串并将其存储在字符串数组中,然后可以使用该数组的索引来访问它

String result[] = fullName.split(" "); // spliting the string

System.out.println("Forename: "+result[0]+" Surname: "+result[1]);// print it 
,

使用正则表达式:

public class Main {

    public static void main(String[] args) {
        final Pattern pattern = Pattern.compile("(\\S+)\\s+(\\S+)");

        final Scanner scanner = new Scanner(System.in);
        final Matcher matcher = pattern.matcher(scanner.nextLine());

        if (matcher.find())
            System.out.println(String.format("Forename: %s,Surname: %s",matcher.group(1),matcher.group(2)));
    }
}