1

我的文字是

---- SınİSırU, SınİUzO puanları azalan :
------ {deneme deneme deneme}{ANYA}{LTD. ŞTİ.}{1.75}{1.25}{14.00}{10.00}{1.75}{1.2}{false}
------ {deneme deneme deneme }{DZLİ}{ ŞTİ.}{1.43}{1.14}{11.43}{9.14}{1.43}{0.57}{false}
------ {deneme deneme deneme }{MEİN}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{HAY}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{AHAN}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{MSA}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{Ş}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{KO}{. ŞTİ.}{1.25}{1.08}{10.00}{8.67}{1.25}{0.54}{false}

kolon1:1.75,1.43,1.29...

kolon2:1.25,1.14,1.10..

然后我将它们从小到大排序。

有替换号码我不想替换号码。例如,如果我的包含文本包含 3,3,3,3,3,2,2,2,2,1,1,1,1,1,1

我只想要 1 2 3

 public class PointStatue {


    private static List<Double> col1 = new ArrayList<Double>(); 
    private static List<Double> col2 = new ArrayList<Double>();
    private static List<Double> col3 = new ArrayList<Double>();
    private static  List<Double> col4 = new ArrayList<Double>();
    private static List<Double> col5 = new ArrayList<Double>();
    private static List<Double> col6 = new ArrayList<Double>();
    private static List<Double> list=new ArrayList<Double>();


    private static List<Double> numbers = new ArrayList<Double>();

    public static void main(String[] args) throws IOException {

        ArrayList<String> puan;
        puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
        System.out.format("%d kayıt okundu.%n", puan.size());

        for (int j = 0; j < puan.size(); j++) {

            String point = puan.get(j);

            String[] edit = point.split("[\\{\\}\\)]");

            for (String s : edit) {

                String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
                String b = a.replaceAll("[\\.]+", ",");
                Scanner scanner = new Scanner(b);

                while (scanner.hasNext()) {

                    if (scanner.hasNextDouble()) {
                        Double doubleValue = scanner.nextDouble();  
                        numbers.add(doubleValue);
                        // System.out.println(Arrays.deepToString(numbers.toArray()));

                    }// if scan end

                    else {

                        //if it is string comes value here
                        String stringValue = scanner.next();

                    }// if scan end

                }// while end

            }// for string s

        }// for j end


        int col=1;

        for(int i=0;i<numbers.size();i++)
        {

            Double rowValue = numbers.get(i);

            switch(col)
            {
            case 1:
                col1.add(rowValue);
                Collections.sort(col1);
                col++;
                break;
            case 2:
                col2.add(rowValue);
                Collections.sort(col2);
                col++;
                break;
            case 3:
                col3.add(rowValue);
                Collections.sort(col3);
                col++;
                break;
            case 4:
                col4.add(rowValue);
                Collections.sort(col4);
                col++;
                break;
            case 5:
                col5.add(rowValue);
                Collections.sort(col5);
                col++;
                break;
            case 6:
                col6.add(rowValue);
                Collections.sort(col6);
                col = 1;
                break;

            }//switch end

        }//for i end


        System.out.println("kolon1"+col1);
        System.out.println("kolon2"+col2);
        System.out.println("kolon3"+col3);
        System.out.println("kolon4"+col4);
        System.out.println("kolon5"+col5);
        System.out.println("kolon6"+col6);

    }// main end

    private static ArrayList<String> okuDiziyeKoy(String dosyaAdı) {

        ArrayList<String> dizi = new ArrayList<String>();
        try {
            FileInputStream fIS;
            fIS = new FileInputStream(dosyaAdı);
            Reader r = new InputStreamReader(fIS, "ISO-8859-9");
            BufferedReader bR = new BufferedReader(r);
            String satır;

            while ((satır = bR.readLine()) != null) {
                dizi.add(satır);

            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return dizi;
    }// okuDiziyeKoyEnd

}// class end
4

3 回答 3

4

看看TreeSet

基于 TreeMap 的 NavigableSet 实现。元素使用它们的自然顺序或在集合创建时提供的 Comparator 进行排序,具体取决于使用的构造函数。

这应该确保您只有一个元素,并且列表根据您的需要进行排序。

于 2013-07-17T12:47:50.530 回答
4

简单的朋友:)

package com.blogspot.arashmd.examples;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}

和你的代码业务

/*
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}
*/

    import java.io.IOException;
    import java.util.*;
    public class PointStatue {
    private static List<Double> col1 = new ArrayList<Double>(); 
    private static List<Double> col2 = new ArrayList<Double>();
    private static List<Double> col3 = new ArrayList<Double>();
    private static  List<Double> col4 = new ArrayList<Double>();
    private static List<Double> col5 = new ArrayList<Double>();
    private static List<Double> col6 = new ArrayList<Double>();
    private static List<Double> list=new ArrayList<Double>();


    private static List<Double> numbers = new ArrayList<Double>();

    public static void main(String[] args) throws IOException {

        ArrayList<String> puan;
        puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
        System.out.format("%d kayıt okundu.%n", puan.size());
        Double doubleValue;
        for (int j = 0; j < puan.size(); j++) {

            String point = puan.get(j);

            String[] edit = point.split("[\\{\\}\\)]");

            for (String s : edit) {

                String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
                String b = a.replaceAll("[\\.]+", ",");
                Scanner scanner = new Scanner(b);

                while (scanner.hasNext()) {

                    if (scanner.hasNextDouble()) {

                        doubleValue = scanner.nextDouble();
                        if(!numbers.contains(doubleValue)){
                        numbers.add(doubleValue);
                        }
                        // System.out.println(Arrays.deepToString(numbers.toArray()));

                    }// if scan end

                    else {

                        //if it is string comes value here
                        String stringValue = scanner.next();

                    }// if scan end

                }// while end

            }// for string s

        }// for j end


        int col=1;

        for(int i=0;i<numbers.size();i++)
        {

            Double rowValue = numbers.get(i);

            switch(col)
            {
            case 1:
                col1.add(rowValue);

                col++;
                break;
            case 2:
                col2.add(rowValue);

                col++;
                break;
            case 3:
                col3.add(rowValue);

                col++;
                break;
            case 4:
                col4.add(rowValue);

                col++;
                break;
            case 5:
                col5.add(rowValue);

                col++;
                break;
            case 6:
                col6.add(rowValue);

                col = 1;
                break;

            }//switch end

        }//for i end
        Collections.sort(col1);
        Collections.sort(col2);
        Collections.sort(col3);
        Collections.sort(col4);
        Collections.sort(col5);
        Collections.sort(col6);
        System.out.println("kolon1"+col1);
        System.out.println("kolon2"+col2);
        System.out.println("kolon3"+col3);
        System.out.println("kolon4"+col4);
        System.out.println("kolon5"+col5);
        System.out.println("kolon6"+col6);

    }// main end  
于 2013-07-17T12:54:42.747 回答
2

试试这个,它会在所有行中找到重复的值,而且每一行也对我有用:)

/*
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}
*/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class PointStatue {
/*private static List<Double> col1 = new ArrayList<Double>(); 
private static List<Double> col2 = new ArrayList<Double>();
private static List<Double> col3 = new ArrayList<Double>();
private static List<Double> col4 = new ArrayList<Double>();
private static List<Double> col5 = new ArrayList<Double>();
private static List<Double> col6 = new ArrayList<Double>();
private static List<Double> col7 = new ArrayList<Double>();
private static List<Double> col8 = new ArrayList<Double>();*/
//private static List<Double> list=new ArrayList<Double>();
private static ArrayList<List<Double>> rows=new ArrayList<List<Double>>();

private static List<Double> numbers = new ArrayList<Double>();
private static void okuDiziyeKoy(String path,ArrayList<String> arr) throws Exception{
  BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path)));
  //skip the first line
  br.readLine();
  String g;
  while((g=br.readLine())!=null){
    arr.add(g);
  }
}
public static void main(String[] args) throws Exception {
    ArrayList<String> puan = new ArrayList<String>();
    okuDiziyeKoy("C:/deneme/HW.txt", puan);
    //   puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
    System.out.format("%d kayıt okundu.%n", puan.size());
    Double doubleValue;

    for (int j = 0; j < puan.size(); j++) {
      List<Double> listToAdd=new ArrayList<Double>();
        rows.add(j, listToAdd);
        String point = puan.get(j);
        //split data(line) by }{
        String[] edit = point.split("[}][{]");
        for(int l=3;l<edit.length-1;l++){
          //parsing String as double
          doubleValue=Double.parseDouble(edit[l]);
          //check if double value is not exist then add it to list
          if(!numbers.contains(doubleValue)){
          numbers.add(doubleValue);
          }
          if(!listToAdd.contains(doubleValue)){
            listToAdd.add(doubleValue);
          }
        }
       /* for (String s : edit) {

            String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
            String b = a.replaceAll("[\\.]+", ",");
            Scanner scanner = new Scanner(b);

            while (scanner.hasNext()) {

                if (scanner.hasNextDouble()) {

                    doubleValue = scanner.nextDouble();
                    if(!numbers.contains(doubleValue)){
                    numbers.add(doubleValue);
                    }
                    // System.out.println(Arrays.deepToString(numbers.toArray()));

                }// if scan end

                else {

                    //if it is string comes value here
                    String stringValue = scanner.next();

                }// if scan end

            }// while end

        }// for string s

    }// for j end*/

        }
    Collections.sort(numbers);
    System.out.println("Unique values(in all rows): ");
    for(Double d :numbers){
        System.out.print(d+" ");
      }
    System.out.println();
    /*int col=1;
    for(int i=0;i<numbers.size();i++)
    {

        Double rowValue = numbers.get(i);

        switch(col)
        {
        case 1:
            col1.add(rowValue);

            col++;
            break;
        case 2:
            col2.add(rowValue);

            col++;
            break;
        case 3:
            col3.add(rowValue);

            col++;
            break;
        case 4:
            col4.add(rowValue);

            col++;
            break;
        case 5:
            col5.add(rowValue);

            col++;
            break;
        case 6:
            col6.add(rowValue);

            col = 1;
            break;

        }//switch end

    }//for i end*/
   /* Collections.sort(col1);
    Collections.sort(col2);
    Collections.sort(col3);
    Collections.sort(col4);
    Collections.sort(col5);
    Collections.sort(col6);*/
    /*System.out.println("kolon1 "+col1);
    System.out.println("kolon2 "+col2);
    System.out.println("kolon3 "+col3);
    System.out.println("kolon4 "+col4);
    System.out.println("kolon5 "+col5);
    System.out.println("kolon6 "+col6);*/
    //sorting each row
    for(int i=0;i<rows.size();i++){
      Collections.sort(rows.get(i));
    }
    //showing each row(array)
    for(int i=0;i<rows.size();i++){
      System.out.println("kolon"+i+": "+rows.get(i));
    }

}// main end  
}

在列中重复:

/*
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}
*/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class PointStatue {
/*private static List<Double> col1 = new ArrayList<Double>(); 
private static List<Double> col2 = new ArrayList<Double>();
private static List<Double> col3 = new ArrayList<Double>();
private static List<Double> col4 = new ArrayList<Double>();
private static List<Double> col5 = new ArrayList<Double>();
private static List<Double> col6 = new ArrayList<Double>();
private static List<Double> col7 = new ArrayList<Double>();
private static List<Double> col8 = new ArrayList<Double>();*/
//private static List<Double> list=new ArrayList<Double>();
private static ArrayList<List<Double>> rows=new ArrayList<List<Double>>();

private static List<Double> numbers = new ArrayList<Double>();
private static void okuDiziyeKoy(String path,ArrayList<String> arr) throws Exception{
  BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path)));
  //skip the first line
  br.readLine();
  String g;
  while((g=br.readLine())!=null){
    arr.add(g);
  }
}
public static void main(String[] args) throws Exception {
    ArrayList<String> puan = new ArrayList<String>();
    okuDiziyeKoy("C:/deneme/HW.txt", puan);
    //   puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
    System.out.format("%d kayıt okundu.%n", puan.size());
    Double doubleValue;
    for (int j = 0; j < 6; j++) {
      rows.add(new ArrayList<Double>());
    }
    for (int j = 0; j < puan.size(); j++) {
        String point = puan.get(j);
        //split data(line) by }{
        String[] edit = point.split("[}][{]");
        for(int l=3;l<edit.length-1;l++){
          //parsing String as double
          doubleValue=Double.parseDouble(edit[l]);
          //check if double value is not exist then add it to list
          if(!numbers.contains(doubleValue)){
          numbers.add(doubleValue);
          }
          if(!rows.get(l-3).contains(doubleValue)){
            rows.get(l-3).add(doubleValue);
          }
        }
       /* for (String s : edit) {

            String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
            String b = a.replaceAll("[\\.]+", ",");
            Scanner scanner = new Scanner(b);

            while (scanner.hasNext()) {

                if (scanner.hasNextDouble()) {

                    doubleValue = scanner.nextDouble();
                    if(!numbers.contains(doubleValue)){
                    numbers.add(doubleValue);
                    }
                    // System.out.println(Arrays.deepToString(numbers.toArray()));

                }// if scan end

                else {

                    //if it is string comes value here
                    String stringValue = scanner.next();

                }// if scan end

            }// while end

        }// for string s

    }// for j end*/

        }
    Collections.sort(numbers);
    System.out.println("Unique values(in all rows): ");
    for(Double d :numbers){
        System.out.print(d+" ");
      }
    System.out.println();
    /*int col=1;
    for(int i=0;i<numbers.size();i++)
    {

        Double rowValue = numbers.get(i);

        switch(col)
        {
        case 1:
            col1.add(rowValue);

            col++;
            break;
        case 2:
            col2.add(rowValue);

            col++;
            break;
        case 3:
            col3.add(rowValue);

            col++;
            break;
        case 4:
            col4.add(rowValue);

            col++;
            break;
        case 5:
            col5.add(rowValue);

            col++;
            break;
        case 6:
            col6.add(rowValue);

            col = 1;
            break;

        }//switch end

    }//for i end*/
   /* Collections.sort(col1);
    Collections.sort(col2);
    Collections.sort(col3);
    Collections.sort(col4);
    Collections.sort(col5);
    Collections.sort(col6);*/
    /*System.out.println("kolon1 "+col1);
    System.out.println("kolon2 "+col2);
    System.out.println("kolon3 "+col3);
    System.out.println("kolon4 "+col4);
    System.out.println("kolon5 "+col5);
    System.out.println("kolon6 "+col6);*/
    //sorting each row
    for(int i=0;i<rows.size();i++){
      Collections.sort(rows.get(i));
    }
    //showing each row(array)
    for(int i=0;i<rows.size();i++){
      System.out.println("kolon"+(i+1)+": "+rows.get(i));
    }

}// main end  
}
于 2013-07-18T06:53:42.703 回答