Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java名称程序_Java - Fatal编程技术网

Java名称程序

Java名称程序,java,Java,编写一个名为hascoma的方法,该方法将名称作为参数,并返回一个布尔值,指示它是否包含逗号。如果是,您可以假定它是姓氏优先格式。您可以使用indexOfString方法来帮助您 编写一个名为convertName的方法,将名称作为参数。它应该通过调用hascoma方法来检查它是否包含逗号。如果是,它应该只返回字符串。如果不是,那么它应该假设该名称为“名优先”格式,并且它应该返回一个新字符串,其中包含转换为“姓优先”格式的名称。使用charAt、length、substring和indexOf方

编写一个名为
hascoma
的方法,该方法将名称作为参数,并返回一个布尔值,指示它是否包含逗号。如果是,您可以假定它是姓氏优先格式。您可以使用
indexOf
String
方法来帮助您

编写一个名为
convertName
的方法,将名称作为参数。它应该通过调用
hascoma
方法来检查它是否包含逗号。如果是,它应该只返回字符串。如果不是,那么它应该假设该名称为“名优先”格式,并且它应该返回一个新字符串,其中包含转换为“姓优先”格式的名称。使用
charAt
length
substring
indexOf
方法

在主程序中,循环,要求用户输入名称字符串。如果字符串不是空的,请调用
convertName
并打印结果。当字符串为空时,循环终止

但是,我的程序不会返回转换后的名称。如果我输入一个像
John Smith
这样的名字,程序就结束了,而不是返回
Smith,John

public static void main(String[] args) {
    String name;
    Scanner reader = new Scanner (System.in);
    System.out.println("Type a name, then press ENTER.");
    name = reader.nextLine();
    if (name == null) {
        return;
    } else {
        convertName(name);
    }
}

public static boolean hasComma(String name) {
    return name.indexOf(',') >= 0;
}

public static String convertName(String name) {
    if (hasComma(name)) {
        return name;   
    } else {
        int index = name.indexOf(' ');
        String first = name.substring(0, index);
        String last = name.substring(index + 1);
        String convertedName = last + ", " + first;
        return convertedName;
    }
}

您没有打印方法的输出

而不是

convertName(name);


您没有对
convertName(name)
的返回值执行任何操作,因此Java将其丢弃。也许您想打印它(
System.out.println(convertName(name));
)?您正在调用convertName(),它返回转换后的名称。但是您忽略返回的值。您应该打印它。:
System.out.println(convertName(name))
System.out.println(convertName(name));