2016-06-14 16 views
0

Ich brauche Hilfe bei der Gruppierung der Texte .. Ich habe eine Liste von Händlern so und wir können sehen, dass die ersten paar gehören zu CENTURYLINK neben SMART ATT .. es gibt eine Möglichkeit, diese Texte zu gruppieren/beschriften mit einem einzigen Etikett kategorisieren oder diese Texte nach dem Pool sie in fallen ..Text Gruppierung der Text

Vielen Dank im Voraus

001 Qwest IREP

003 Qwest MEIN KONTO

003-ClearTalk Wireless-

004 Century IVR

005 Century RECURRING

006 Century WIFI

007 Century CABLE

111 SMART ATT

112 SMART ATT

113 - SMART - ATT

114 SMART ATT

120 - SMART - ATT

131 - SMART - ATT

137 - SMART - ATT

A WIRELESS AMERY

A WIRELESS ANNA

Ein WIRELESS APTOS

A WIRELESS ARCADIA

A WIRELESS ARNOLDS PAR

A WIRELESS ASHLAND

A WIRELESS ATHEN

Antwort

0

Sie haben ein paar Optionen. Zu den einfachsten wäre Anbieter Strings entsprechen, wie folgt:

import java.util.Arrays; 
import java.util.LinkedList; 
import java.util.List; 
import java.util.Map; 
import java.util.TreeMap; 
import java.util.stream.Collectors; 

public class GroupVendors { 
    public static void main(final String[] args) { 
     final List<String> vendors = Arrays.asList(
      "CENTURYLINK", 
      "SMART", 
      "ATT", 
      "A WIRELESS"); 

     final List<String> uncategorizedVendors = Arrays.asList(
      "001 CENTURYLINK IREP", 
      "003 CENTURYLINK MY ACCOUNT", 
      "003-ClearTalk Wireless", 
      "004 CENTURYLINK IVR", 
      "005 CENTURYLINK RECURRING", 
      "006 CENTURYLINK WIFI", 
      "007 CENTURYLINK CABLE", 
      "111 SMART ATT", 
      "112 SMART ATT", 
      "113 - SMART - ATT", 
      "114 SMART ATT", 
      "120 - SMART - ATT", 
      "131 - SMART - ATT", 
      "137 - SMART - ATT", 
      "A WIRELESS AMERY", 
      "A WIRELESS ANNA", 
      "A WIRELESS APTOS", 
      "A WIRELESS ARCADIA", 
      "A WIRELESS ARNOLDS PAR", 
      "A WIRELESS ASHLAND", 
      "A WIRELESS ATHENS"); 

     final Map<String, List<String>> categorizedVendors = new TreeMap<>(); 

     for (final String vendor : vendors) { 
      categorizedVendors.put(vendor, new LinkedList<String>()); 
     } 

     for (final String vendor : uncategorizedVendors) { 
      for (final Map.Entry<String, List<String>> entry : categorizedVendors.entrySet()) { 
       final String category = entry.getKey(); 
       if (vendor.contains(category)) { 
        final List<String> bin = entry.getValue(); 
        bin.add(vendor); 
       } 
      } 
     } 

     for (final Map.Entry<String, List<String>> entry : categorizedVendors.entrySet()) { 
      final String category = entry.getKey(); 
      final List<String> bin = entry.getValue(); 
      System.out.printf("vendors(\"%s\") = {%n", category); 
      if (!bin.isEmpty()) { 
       System.out.printf(" %s%n", 
        bin.stream() 
         .map((vendor) -> String.format("\"%s\"", vendor)) 
         .collect(Collectors.joining(",\n "))); 
      } 
      System.out.println("}"); 
     } 
    } 
} 

Probelauf:

% java GroupVendors 
vendors("A WIRELESS") = { 
    "A WIRELESS AMERY", 
    "A WIRELESS ANNA", 
    "A WIRELESS APTOS", 
    "A WIRELESS ARCADIA", 
    "A WIRELESS ARNOLDS PAR", 
    "A WIRELESS ASHLAND", 
    "A WIRELESS ATHENS" 
} 
vendors("ATT") = { 
    "111 SMART ATT", 
    "112 SMART ATT", 
    "113 - SMART - ATT", 
    "114 SMART ATT", 
    "120 - SMART - ATT", 
    "131 - SMART - ATT", 
    "137 - SMART - ATT" 
} 
vendors("CENTURYLINK") = { 
    "001 CENTURYLINK IREP", 
    "003 CENTURYLINK MY ACCOUNT", 
    "004 CENTURYLINK IVR", 
    "005 CENTURYLINK RECURRING", 
    "006 CENTURYLINK WIFI", 
    "007 CENTURYLINK CABLE" 
} 
vendors("SMART") = { 
    "111 SMART ATT", 
    "112 SMART ATT", 
    "113 - SMART - ATT", 
    "114 SMART ATT", 
    "120 - SMART - ATT", 
    "131 - SMART - ATT", 
    "137 - SMART - ATT" 
} 

ich die Annahme gemacht haben, dass die Liste der Verkäufer Ihnen interessiert sind, ist „Centurylink“ , "SMART", "ATT" und "A WIRELESS". Dies hat zur Folge, dass alle Einträge, die sowohl "SMART" als auch "ATT" enthalten, in ihren Bins kategorisiert werden. Wenn Sie möchten, dass jeder Lieferant in genau einem Fach kategorisiert wird, müssen Sie entscheiden, welchen Lieferanten Sie bevorzugen, wenn die Kategorien redundant sind.