//注意其中的空格 处理时要去掉
String[] strs = {"刘德华"," 陈毅","欧阳锋"," 黄药师"};
HashSet<String> fuXing = new HashSet<String>();
fuXing.add("欧阳");
fuXing.add("慕容");
//把strs中人名的姓 提取出来,重复的不要显示
String[] strs = {"刘德华"," 陈毅","欧阳锋"," 黄药师"};
HashSet<String> fuXing = new HashSet<String>();
fuXing.add("欧阳");
fuXing.add("慕容");
//把strs中人名的姓 提取出来,重复的不要显示
這樣的話問題不難,先從複姓Set去比對,比對剩下的取第一個字。
抓出來的資料都另外放一個姓氏set。
全部判斷完就可以了。
建出來程式就做好1/3了。
接下來,取出一個姓名,先判斷 startsWith 在不在複姓set裡面。
在就複姓放到最後要輸出 set 裡面,都沒有就把第一個字放到最後要輸出 set 裡面。
迴圈做完就是結果。
package com.test;import java.util.HashSet;public class drawName {
static String[] surnameMuster = {"欧阳","太史","端木","上官","司马","东方","独孤","南宫","万俟","闻人","夏侯","诸葛","尉迟","公羊","赫连","澹台","皇甫","宗政","濮阳","公冶","太叔","申屠","公孙","慕容","仲孙","钟离","长孙","宇文","司徒","鲜于","司空","闾丘","子车","亓官","司寇","巫马","公西","颛孙","壤驷","公良","漆雕","乐正","宰父","谷梁","拓跋","夹谷","轩辕","令狐","段干","百里","呼延","东郭","南门","羊舌","微生","公户","公玉","公仪","梁丘","公仲","公上","公门","公山","公坚","左丘","公伯","西门","公祖","第五","公乘","贯丘","公皙","南荣","东里","东宫","仲长","子书","子桑","即墨","达奚","褚师","吴铭"};
static String[] nameMuster = {"刘德华"," 陈毅","端木锋"," 黄药师","端木小小","欧阳锋"};
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HashSet<String> setSurname = new HashSet<String>();
for(int i=0;i<nameMuster.length;i++)
{
String name = nameMuster[i].trim();
boolean flag = true;
for(int j=0;j<surnameMuster.length;j++)
{
if(surnameMuster[j].equals(name.substring(0,2)))
{
setSurname.add(name.substring(0,2));
flag = false;
break;
}
}
if(flag)
{
setSurname.add(name.substring(0,1));
}
}
for(String str:setSurname)
{
System.out.println(str);
}
}
}写的可能有可能很麻烦但是你要的效果实现了,感谢楼上提供的姓氏,还有lz最好自己做做,大家都给你思路了。