2015-12-04 2 views
-2

У меня есть эти 4 массива:Получить комбинации из 3-х переменных

String[] dayFormats = {"d"}; 
    String[] monthFormats = {"MM","MMM","MMMM"}; 
    String[] yearFormats = {"yy","yyyy"}; 
    String[] sepFormats = {" ",".","/"}; 

Я хочу, чтобы затем заполнить ArrayList со всеми вероятностями их, как это:

  1. d ММ ГГ
  2. д .MM.yy
  3. d/MM/YY
  4. ...
  5. гггг/MMMM/d

Чтобы получить все вероятности форматов, которые пользователь мог ввести с ним.

Как я мог это сделать? , конечно, не в ручном режиме!

+1

Вы имеете в виду "комбинации" ([результат или продукт объединения двух или более вещей] (http://www.merriam-webster.com/dictionary/c ombination)), а не «вероятности» ([вероятность того, что что-то произойдет] (http://www.merriam-webster.com/dictionary/probability)). – Andreas

+0

@ Андреас, да! –

ответ

1

Что-то вроде этого:

String[] dayFormats = {"d"}; 
String[] monthFormats = {"MM","MMM","MMMM"}; 
String[] yearFormats = {"yy","yyyy"}; 
String[] sepFormats = {" ",".","/"}; 
String[][][] orders = { { dayFormats, monthFormats, yearFormats }, 
         { dayFormats, yearFormats, monthFormats }, 
         { monthFormats, dayFormats, yearFormats }, 
         { monthFormats, yearFormats, dayFormats }, 
         { yearFormats, dayFormats, monthFormats }, 
         { yearFormats, monthFormats, dayFormats } }; 
for (String[][] parts : orders) 
    for (String sep : sepFormats) 
     for (String p1 : parts[0]) 
      for (String p2 : parts[1]) 
       for (String p3 : parts[2]) 
        System.out.println(p1 + sep + p2 + sep + p3); 

Выход (108 комбинаций)

d MM yy 
d MM yyyy 
d MMM yy 
d MMM yyyy 
d MMMM yy 
d MMMM yyyy 
d.MM.yy 
d.MM.yyyy 
d.MMM.yy 
d.MMM.yyyy 
d.MMMM.yy 
d.MMMM.yyyy 
d/MM/yy 
d/MM/yyyy 
d/MMM/yy 
d/MMM/yyyy 
d/MMMM/yy 
d/MMMM/yyyy 
d yy MM 
d yy MMM 
d yy MMMM 
d yyyy MM 
d yyyy MMM 
d yyyy MMMM 
d.yy.MM 
d.yy.MMM 
d.yy.MMMM 
d.yyyy.MM 
d.yyyy.MMM 
d.yyyy.MMMM 
d/yy/MM 
d/yy/MMM 
d/yy/MMMM 
d/yyyy/MM 
d/yyyy/MMM 
d/yyyy/MMMM 
MM d yy 
MM d yyyy 
MMM d yy 
MMM d yyyy 
MMMM d yy 
MMMM d yyyy 
MM.d.yy 
MM.d.yyyy 
MMM.d.yy 
MMM.d.yyyy 
MMMM.d.yy 
MMMM.d.yyyy 
MM/d/yy 
MM/d/yyyy 
MMM/d/yy 
MMM/d/yyyy 
MMMM/d/yy 
MMMM/d/yyyy 
MM yy d 
MM yyyy d 
MMM yy d 
MMM yyyy d 
MMMM yy d 
MMMM yyyy d 
MM.yy.d 
MM.yyyy.d 
MMM.yy.d 
MMM.yyyy.d 
MMMM.yy.d 
MMMM.yyyy.d 
MM/yy/d 
MM/yyyy/d 
MMM/yy/d 
MMM/yyyy/d 
MMMM/yy/d 
MMMM/yyyy/d 
yy d MM 
yy d MMM 
yy d MMMM 
yyyy d MM 
yyyy d MMM 
yyyy d MMMM 
yy.d.MM 
yy.d.MMM 
yy.d.MMMM 
yyyy.d.MM 
yyyy.d.MMM 
yyyy.d.MMMM 
yy/d/MM 
yy/d/MMM 
yy/d/MMMM 
yyyy/d/MM 
yyyy/d/MMM 
yyyy/d/MMMM 
yy MM d 
yy MMM d 
yy MMMM d 
yyyy MM d 
yyyy MMM d 
yyyy MMMM d 
yy.MM.d 
yy.MMM.d 
yy.MMMM.d 
yyyy.MM.d 
yyyy.MMM.d 
yyyy.MMMM.d 
yy/MM/d 
yy/MMM/d 
yy/MMMM/d 
yyyy/MM/d 
yyyy/MMM/d 
yyyy/MMMM/d 

Если два сепаратора могут быть независимыми, используйте:

for (String[][] parts : orders) 
    for (String sep1 : sepFormats) 
     for (String sep2 : sepFormats) 
      for (String p1 : parts[0]) 
       for (String p2 : parts[1]) 
        for (String p3 : parts[2]) 
         System.out.println(p1 + sep1 + p2 + sep2 + p3); 
+0

thanx bro .. могу я добавить с ними также для 2 переменных?! b ,, d MM ,, d MM yyy ..? –

Смежные вопросы