在数据库中的数据是:美软白麦9.5%以上蛋白
美软白麦9.5%以上蛋白
美软白麦9.5%以上蛋白
美软红冬麦
美软红冬麦
美软红冬麦
美软红冬麦
美软白麦9.5%以上蛋白
美软白麦9.5%以上蛋白
美软白麦9.5%以上蛋白数据是,从数据库里面取出来的,不固定。我想在界面上显示的是:比如:美软白麦9.5%以上蛋白,重复去掉两行,美软红冬麦重复,去掉3列,此时,又有 美软白麦9.5%以上蛋白,出现时,虽然与前面的重复了,但仍显示要显示1行,其他的两行去掉
显示结果如下:
美软白麦9.5%以上蛋白
美软红冬麦
美软白麦9.5%以上蛋白
请教java算法

解决方案 »

  1.   

    public static void main(String[] args) {
    String s = "美软白麦9.5%以上蛋白\n" +
    "美软白麦9.5%以上蛋白\n" +
    "美软白麦9.5%以上蛋白\n" +
    "美软红冬麦\n美软红冬麦\n" +
    "美软红冬麦\n美软红冬麦\n" +
    "美软白麦9.5%以上蛋白\n" +
    "美软白麦9.5%以上蛋白\n" +
    "美软白麦9.5%以上蛋白";
    String currLine = null, lastLine = null;
    Scanner scanner = new Scanner(s);
    while (scanner.hasNextLine()) {
    currLine = scanner.nextLine();
    if (!currLine.equals(lastLine)) {
    System.out.println(currLine);
    }
    lastLine = currLine;
    }
    }
    输出结果:
    美软白麦9.5%以上蛋白
    美软红冬麦
    美软白麦9.5%以上蛋白
      

  2.   

    String[] ss = {
    "美软白麦9.5%以上蛋白",
    "美软白麦9.5%以上蛋白",
    "美软白麦9.5%以上蛋白",
    "美软红冬麦",
    "美软红冬麦",
    "美软红冬麦",
    "美软红冬麦",
    "美软白麦9.5%以上蛋白",
    "美软白麦9.5%以上蛋白",
    "美软白麦9.5%以上蛋白"
    };
    StringBuffer sb = new StringBuffer();
    if(ss.length>=1){
    sb.append(ss[0]);
    for(int i=0;i<ss.length-1;i++){
    if(!ss[i].equals(ss[i+1])){
    sb.append("#"+ss[i+1]);
    }
    }
    String s1 = sb.toString();
    String[] splitStr = s1.split("#");
    for(String s:splitStr){
    System.out.println(s);
    }
    }