Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема с логикой.


Автор: Fameing 20.4.2006, 17:07
Проблема с логикой ? Что не так делаю ?

Маска : sd = "10.44.*.*"
             sd1 = "10"
             sd2 = "44"
             sd3 = "*"
             sd4 = "*"

IP : sp = "10.44.80.181"
       sp1 = "10"
       sp1 = "44"
       sp1 = "40"
       sp1 = "181"

Код

cheak = ((sd1.equals(sp1) | sd1.equals("*"))
               & (sd2.equals(sp2) | sd2.equals("*"))
               & (sd3.equals(sp3) | sd3.equals("*"))
               & (sd4.equals(sp4) | sd4.equals("*")));


получаю 

Код

Маска :100.444.800.*      false
Маска :10.44.800.*          true
Маска :10.140.80.*          true
Маска :100.44.80.*          false
Маска :10.44.80.*            true
Маска :10.44.80.181        true




 

Автор: garm 20.4.2006, 17:33
А это ничего, что у тебя все sp с одним номером?
Может я неправильно понял задачу, но вот такой код:
Код

String sp1 = "10";
String sp2 = "44";
String sp3 = "40";
String sp4 = "181";

String sd1 = "10";
String sd2 = "44";
String sd3 = "800";
String sd4 = "*";
boolean cheak = ((sd1.equals(sp1) | sd1.equals("*"))
        & (sd2.equals(sp2) | sd2.equals("*"))
        & (sd3.equals(sp3) | sd3.equals("*"))
        & (sd4.equals(sp4) | sd4.equals("*")));
System.out.println(cheak);

выдаёт false, как ему и положено.
Это я протестил маску из строки 3. 

Автор: Fameing 20.4.2006, 17:49
Я тут полдня полбашусь а проблема нашлась не в логике !  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)