Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Strings aus char Array generieren

Frage Entwicklung Java

Mitglied: Turrex0100

Turrex0100 (Level 1) - Jetzt verbinden

03.06.2013, aktualisiert 17:13 Uhr, 2344 Aufrufe, 2 Kommentare

Hallo Forum,

Ich bin auf der Suche nach einem Algorithmus um aus einem gegebenen char Array
alle möglichen Buchstabenkombinationen einer länge k in ein String Array zu schreiben.

Ein beispiel:

Char array enthält: 'a','b','c'
k = 2
dann soll das String Array so aussehen: "ab","ac","ba","bc","cb","ca"


Im Prinzip ist das Ganze doch ein Auswahlproblem quasi "ziehen ohne zurücklegen"
wie zb Lotto somit müsste die Anzahl der Kombinationen n über k sein.


die Länge des Char Arrays und der Wert von k kann dabei unterschiedlich sein.

Leide hab ich noch keine richtige Idee wie ich das Problem lösen kann.
Gibt es bereits einen solchen Algorithmus den ich nur noch implementieren muss,
oder habt ihr vielleicht irgendwelche Ideen?

Gruss Malte.
Mitglied: colinardo
03.06.2013, aktualisiert um 20:57 Uhr
Hallo Malte,
das gleiche Problem wird hier diskutiert, ist zwar für VB aber lässt sich sicher auch in Java umsetzen:
http://www.tutorials.de/visual-basic-6-0/260088-algorithmus-fuer-kombin ...

Grüsse Uwe
Bitte warten ..
Mitglied: colinardo
05.06.2013, aktualisiert um 14:41 Uhr
Das was du suchst nennt sich Permutation, bin zwar kein Java-Profi aber das hier müsste funktionieren(p.s. ist nicht sehr performant):
01.
import java.util.ArrayList; 
02.
import java.util.LinkedHashSet; 
03.
import java.util.Set; 
04.
 
05.
public class GenerateCombinations { 
06.
 
07.
    public static String chars = "ABCDEFGH"; 
08.
    public static int anzahl = 2; 
09.
     
10.
    public static void main(String[] Args){ 
11.
        PermutationGenerator generator = new PermutationGenerator(chars,anzahl); 
12.
        ArrayList<String> permutations = generator.getPermutations(); 
13.
        Set<String> s = new LinkedHashSet<String>(permutations); 
14.
        System.out.println(s); 
15.
16.
17.
class PermutationGenerator { 
18.
 
19.
    private String string; 
20.
    private ArrayList<String> permutations; 
21.
    private int MaxLengthOfFinalString; 
22.
 
23.
    public PermutationGenerator(String string, int laenge) { 
24.
        this.string = string; 
25.
        this.permutations = new ArrayList<String>(); 
26.
        this.MaxLengthOfFinalString = laenge; 
27.
28.
 
29.
    public ArrayList<String> getPermutations() { 
30.
        permutation("", this.string); 
31.
        return this.permutations; 
32.
33.
 
34.
    private void permutation(String prefix, String str) { 
35.
        int n = str.length(); 
36.
        if (n == 0) { 
37.
            this.permutations.add(prefix.substring(0,MaxLengthOfFinalString)); 
38.
        } else { 
39.
            for (int i = 0; i < n; i++) { 
40.
                permutation(prefix + str.charAt(i), str.substring(0,i) + str.substring(i+1,n)); 
41.
42.
43.
44.
}
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Teil eines Strings als Variable setzen (2)

Frage von tHe-jAy zum Thema Batch & Shell ...

PHP
gelöst PHP - unique-array() und sort() (14)

Frage von ThomasXYZ zum Thema PHP ...

Batch & Shell
gelöst Username generieren . ab in eine csv (16)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Batch & Shell
gelöst Schreiben eines Strings mit Leerzeichen in eine Datei (6)

Frage von c20082005 zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (16)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (15)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
IP im privaten Netz nicht erreichbar (12)

Frage von guntis zum Thema LAN, WAN, Wireless ...

Windows Server
Druck wird nicht erlaubt (10)

Frage von daquick zum Thema Windows Server ...