//注意其中的空格 处理时要去掉
String[] strs = {"刘德华","  陈毅","欧阳锋"," 黄药师"};
HashSet<String> fuXing = new HashSet<String>();
fuXing.add("欧阳");
fuXing.add("慕容");

//把strs中人名的姓 提取出来,重复的不要显示

解决方案 »

  1.   

    是把複姓先放一個 Set,然後再判斷字串是嗎?
    這樣的話問題不難,先從複姓Set去比對,比對剩下的取第一個字。
    抓出來的資料都另外放一個姓氏set。
    全部判斷完就可以了。
      

  2.   

    這不就是先建立複性的set,這部分要手動去建。
    建出來程式就做好1/3了。
    接下來,取出一個姓名,先判斷 startsWith 在不在複姓set裡面。
    在就複姓放到最後要輸出 set 裡面,都沒有就把第一個字放到最後要輸出 set 裡面。
    迴圈做完就是結果。
      

  3.   


    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最好自己做做,大家都给你思路了。