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