如何将名称更改为姓氏逗号名字java

时间:2013-12-19 19:10:29

标签: java string

我有一个关于如何将名称转换为姓氏逗号名字的问题。就我而言,我是通过静态方法完成的。我认为我的编码是正确的,但是当我运行它时,我什么也得不到。我怎样才能解决这个问题?任何帮助将不胜感激。以下是我的代码:

Testing1.java:

import java.io.*;

public class Testing1 {

    public static String convertName(String name) {
        String firstName = name.substring(0, name.indexOf(" "));
        String lastName = name.substring(name.indexOf(" "));
        String cName =  lastName + firstName;
        return cName;
    }

    public static void main(String args[]) {
        String name = "Grace Hopper";
        convertName(name);
    }
}

7 个答案:

答案 0 :(得分:1)

您需要对convertName()返回的值执行某些操作。例如,打印它。

修改main方法如下:

public static void main(String args[]) {
    String name = "Grace Hopper";
    name = convertName(name);
    System.out.println(name);
}

然后你会“得到一些东西”。

此外,您没有添加逗号,只是颠倒名字和姓氏。并且不要忘记对检查输入进行完整性检查(例如,如果输入没有空格,则代码会抛出异常)。

答案 1 :(得分:0)

您还需要更改

String cName =  lastName + firstName;

String cName =  lastName + ", " + firstName;

否则你不会在结果中得到你想要的逗号。

答案 2 :(得分:0)

阅读本页:String API,考虑使用split()拆分名称字符串。然后以正确的格式重新组装。

答案 3 :(得分:0)

您没有将返回的值分配给任何内容。我还添加了逗号,并删除了前导空格。

public class Testing1 {

    public static String convertName(String name) {
        String firstName = name.substring(0, name.indexOf(" "));
        String lastName = name.substring(name.indexOf(" ") + 1); // + 1 to skip the space
        String cName =  lastName + ", " + firstName;  //Add a comma and space
        return cName;
    }

    public static void main(String args[]) {
        String name = "Grace Hopper";
        name = convertName(name);  //Assign the returned value
        System.out.println(name);  //Print the returned value
    }
}

答案 4 :(得分:0)

首先,您没有添加逗号。

其次,您只调用了方法,但没有打印结果。

尝试此操作(评论更改):

import java.io.*;

public class Testing1 {

    public static String convertName(String name) {
        String firstName = name.substring(0, name.indexOf(" "));
        String lastName = name.substring(name.indexOf(" ") + 1); // add 1
        String cName =  lastName + ", " + firstName; // add a comma
        return cName;
    }

    public static void main(String args[]) {
        String name = "Grace Hopper";
        System.out.println(convertName(name)); // print the returned name
    }
}

答案 5 :(得分:0)

您需要添加逗号,将函数的返回值存储在字符串中,然后打印结果。

public class LastNameFirstName2 {
    public static String convertName(String name) {
        String firstName = name.substring(0, name.indexOf(" "));
        String lastName = name.substring(name.indexOf(" "));
        String cName =  lastName + "," + firstName;
        return cName;
    }

    public static void main(String args[]) {
        String name = "Grace Hopper";
        String ReversedName=convertName(name);
        System.out.println(ReversedName);
    }
}

答案 6 :(得分:0)

这是解决问题的递归算法,它不使用任何字符串库的方法。此方法不会将字符串 str 中的单词数限制为 2。

public static String convert(String str, int start, int finish) {
    if(start >= finish)
        return "";
    String temp="";
    int i;
    for(i=start;i<finish;i++) {
        if(str.charAt(i) != ' ')
            temp += str.charAt(i);
        else
            break;
    }
    
    return convert(str, i+1, finish) + (convert(str, i+1, finish) == "" ? "" : " ") + temp;
}

public static String nameShuffle(String str) {
    return convert(str, 0, str.length());
}