输入姓名并分别输出姓和名

来源:互联网 发布:梯度下降算法数学推导 编辑:程序博客网 时间:2024/04/28 21:07

输入姓名并分别输出姓和名

/**
 * 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(02);
            
            
//处理复姓
            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(02);
                        firstName 
= fullName.substring(2);
                    }
 else if (fullName.length() <= 2 &&         //姓氏是“欧阳”,且完整姓名小于等于两个字符的
                        frontTwoChar.equals("欧阳")) {
                        familyName 
= fullName.substring(01);
                        firstName 
= fullName.substring(1);
                    }
 else if (fullName.length() > 2 &&          //姓氏是“欧阳”,且完整姓名大于两个字符的
                        frontTwoChar.equals("欧阳")) {
                        familyName 
= fullName.substring(02);
                        firstName 
= fullName.substring(2);
                    }

                    
//找到相匹配的复姓就跳出循环,停止判断
                    break;
                }
 else {
                    familyName 
= fullName.substring(01);
                    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);
    }

}
原创粉丝点击