输入姓名并分别输出姓和名
/** *//**
* InputAndOutputName.java
* 输入姓名并分别输出姓和名
* @author 邓超
* @version 0.1 2008/5/11
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
import java.util.Scanner;
public class InputAndOutputName ...{
public static void main(String[] args) ...{
Scanner input = new Scanner(System.in);
//保存我国现存的81个复姓(如果还有人是其他复姓,我估计这人是刚出土的)
String[] RepeatedFamilyName = new String[]...{"欧阳","太史",
"端木","上官","司马","东方","独孤","南宫","万俟","闻人","夏侯",
"诸葛","尉迟","公羊","赫连","澹台","皇甫","宗政","濮阳","公冶",
"太叔","申屠","公孙","慕容","仲孙","钟离","长孙","宇文","司徒",
"鲜于","司空","闾丘","子车","亓官","司寇","巫马","公西","颛孙",
"壤驷","公良","漆雕","乐正","宰父","谷梁","拓跋","夹谷","轩辕",
"令狐","段干","百里","呼延","东郭","南门","羊舌","微生","公户",
"公玉","公仪","梁丘","公仲","公上","公门","公山","公坚","左丘",
"公伯","西门","公祖","第五","公乘","贯丘","公皙","南荣","东里",
"东宫","仲长","子书","子桑","即墨","达奚","褚师"};
//System.out.println("我国现存复姓数量为:" + RepeatedFamilyName.length + "个。");
//保存全名
String fullName;
//保存姓氏
String familyName = "";
//保存名字
String firstName = "";
//循环标识
boolean con;
do ...{
con = false;
//控制台输入提示
System.out.print("输入任意一个姓名:");
//接收并保存全名
fullName = input.next();
//保存输入内容的前两个字符
String frontTwoChar = fullName.substring(0, 2);
//处理复姓
for (int i = 0; i < RepeatedFamilyName.length; i++) ...{
if (RepeatedFamilyName[i].equals(frontTwoChar)) ...{
if (fullName.length() <= 2 && //姓氏不为“欧阳”,且完整姓名小于等于两个字符的
!frontTwoChar.equals("欧阳")) ...{
System.out.println("错误,请输入完整姓名!");
con = true;
} else if (fullName.length() > 2 && //姓氏不为“欧阳”,且完整姓名大于两个字符的
!frontTwoChar.equals("欧阳")) ...{
familyName = fullName.substring(0, 2);
firstName = fullName.substring(2);
} else if (fullName.length() <= 2 && //姓氏是“欧阳”,且完整姓名小于等于两个字符的
frontTwoChar.equals("欧阳")) ...{
familyName = fullName.substring(0, 1);
firstName = fullName.substring(1);
} else if (fullName.length() > 2 && //姓氏是“欧阳”,且完整姓名大于两个字符的
frontTwoChar.equals("欧阳")) ...{
familyName = fullName.substring(0, 2);
firstName = fullName.substring(2);
}
//找到相匹配的复姓就跳出循环,停止判断
break;
} else ...{
familyName = fullName.substring(0, 1);
firstName = fullName.substring(1);
}
}
//控制台分别输出姓和名
System.out.println("姓氏:" + familyName);
System.out.println("名字:" + firstName);
//询问用户是否中止程序
System.out.print("是否继续(y/n)?");
char choose = input.next().charAt(0);
if (choose == 'y' || choose == 'Y') ...{
con = true;
}
} while (con);
//退出
System.exit(0);
}
}
* InputAndOutputName.java
* 输入姓名并分别输出姓和名
* @author 邓超
* @version 0.1 2008/5/11
* 开发/测试环境:jdk1.6 + eclipse SDK 3.3.2
*/
import java.util.Scanner;
public class InputAndOutputName ...{
public static void main(String[] args) ...{
Scanner input = new Scanner(System.in);
//保存我国现存的81个复姓(如果还有人是其他复姓,我估计这人是刚出土的)
String[] RepeatedFamilyName = new String[]...{"欧阳","太史",
"端木","上官","司马","东方","独孤","南宫","万俟","闻人","夏侯",
"诸葛","尉迟","公羊","赫连","澹台","皇甫","宗政","濮阳","公冶",
"太叔","申屠","公孙","慕容","仲孙","钟离","长孙","宇文","司徒",
"鲜于","司空","闾丘","子车","亓官","司寇","巫马","公西","颛孙",
"壤驷","公良","漆雕","乐正","宰父","谷梁","拓跋","夹谷","轩辕",
"令狐","段干","百里","呼延","东郭","南门","羊舌","微生","公户",
"公玉","公仪","梁丘","公仲","公上","公门","公山","公坚","左丘",
"公伯","西门","公祖","第五","公乘","贯丘","公皙","南荣","东里",
"东宫","仲长","子书","子桑","即墨","达奚","褚师"};
//System.out.println("我国现存复姓数量为:" + RepeatedFamilyName.length + "个。");
//保存全名
String fullName;
//保存姓氏
String familyName = "";
//保存名字
String firstName = "";
//循环标识
boolean con;
do ...{
con = false;
//控制台输入提示
System.out.print("输入任意一个姓名:");
//接收并保存全名
fullName = input.next();
//保存输入内容的前两个字符
String frontTwoChar = fullName.substring(0, 2);
//处理复姓
for (int i = 0; i < RepeatedFamilyName.length; i++) ...{
if (RepeatedFamilyName[i].equals(frontTwoChar)) ...{
if (fullName.length() <= 2 && //姓氏不为“欧阳”,且完整姓名小于等于两个字符的
!frontTwoChar.equals("欧阳")) ...{
System.out.println("错误,请输入完整姓名!");
con = true;
} else if (fullName.length() > 2 && //姓氏不为“欧阳”,且完整姓名大于两个字符的
!frontTwoChar.equals("欧阳")) ...{
familyName = fullName.substring(0, 2);
firstName = fullName.substring(2);
} else if (fullName.length() <= 2 && //姓氏是“欧阳”,且完整姓名小于等于两个字符的
frontTwoChar.equals("欧阳")) ...{
familyName = fullName.substring(0, 1);
firstName = fullName.substring(1);
} else if (fullName.length() > 2 && //姓氏是“欧阳”,且完整姓名大于两个字符的
frontTwoChar.equals("欧阳")) ...{
familyName = fullName.substring(0, 2);
firstName = fullName.substring(2);
}
//找到相匹配的复姓就跳出循环,停止判断
break;
} else ...{
familyName = fullName.substring(0, 1);
firstName = fullName.substring(1);
}
}
//控制台分别输出姓和名
System.out.println("姓氏:" + familyName);
System.out.println("名字:" + firstName);
//询问用户是否中止程序
System.out.print("是否继续(y/n)?");
char choose = input.next().charAt(0);
if (choose == 'y' || choose == 'Y') ...{
con = true;
}
} while (con);
//退出
System.exit(0);
}
}