Pomoc w rozwiazaniu zadania

Pomoc w rozwiazaniu zadania
M0
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:13
0

Witam, Jest ktoś w stanie mi pomoc w rozwiązaniu tego zadania? Wiem, że nie jest ono trudne ale jednak mam z nim problem ;/

  • Uzupełnij ciało poniżeszej metody tak aby zwracała true jeśli dostarczony argument zawiera znaki reprezentujące liczbe lub false w przeciwnym wypadku.

public boolean metoda(char[] slowo){
..
}
*

R1
  • Rejestracja:około 10 lat
  • Ostatnio:około 5 lat
  • Postów:208
0

a z czym dokładnie masz problem?

TJ
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:35
1
Kopiuj
 public boolean metoda(char[] slowo){
for(Character litera : slowo){
if(Character.isDigit(litera))
return true;
}
return false;
}

nie wiem czy sie skompliuje, ale cos w tym stylu
Edit:
Poprawiony warunek

edytowany 1x, ostatnio: toJaMichal
1
toJaMichal napisał(a):
Kopiuj
 public boolean metoda(char[] slowo){
for(Character litera : slowo){
if(Character.isDigit(litera))
return false;
}
return true;
}

nie wiem czy sie skompliuje, ale cos w tym stylu

No nie za "bałdzo" :) Pomijając szczegół, że warunek logiczny odwrócony, metoda zostanie wykonana tylko dla pierwszego znaku znajdującego się w slowo[0] reszty nawet nie będzie sprawdzać... co w momencie kiedy argument będzie wyglądał tak "1alicja"?

Zobacz pozostałe 3 komentarze
axelbest
Tak czy siak - kod z posta którego komentujemy, zwróci true/false już po pierwszej literce, czyli źle :)
bogdans
Przecież napisałem, że jest jeden błąd - odwrócony warunek logiczny. A wtedy reszta jest poprawna.
axelbest
Fcuk.... nic nie myslę dziś. klamry mnie zmyliły... zwracam honor i nie odzywam się juz dziś :P Przywykłem za bardzo do faktu - że nawet w prostym if'ie daje klamerki.
CH
cholera racja, też przegapiłem brak klamerki, przepraszam
axelbest
No tak to jest jak jest brzydko sformatowany kod.....
M0
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:13
0
Smutny Karp napisał(a):
toJaMichal napisał(a):
Kopiuj
 public boolean metoda(char[] slowo){
for(Character litera : slowo){
if(Character.isDigit(litera))
return false;
}
return true;
}

nie wiem czy sie skompliuje, ale cos w tym stylu

No nie za "bałdzo" :) Pomijając szczegół, że warunek logiczny odwrócony, metoda zostanie wykonana tylko dla pierwszego znaku znajdującego się w slowo[0] reszty nawet nie będzie sprawdzać... co w momencie kiedy argument będzie wyglądał tak "1alicja"?

I właśnie w tym mam problem ze sprawdza mi tylko 1 element tablicy a musi porównywać tjb wszystkie aby zwrócić true. ;/

CH
CH
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:8
1
Kopiuj
    public boolean metoda(char[] slowo) {
        boolean wynik = true;
        for (Character litera: slowo) {
            if (litera.isDigit(litera) || litera == ',' || litera == '.' ) {
               
            } else {
                wynik = false;
            }
        }
        if (wynik == false) return false;
        else return true;
    }

Na zdrowie :) przecinek i kropka żeby uwzględnić liczby zmiennoprzecinkowe :)
BTW jak tam sesja ?

Wybacz sam się połapałem, że zrobiłem buraka w drugą stronę, ale już poprawione.

edytowany 2x, ostatnio: Christosc
bogdans
WTF?, w tym kodzie o wyniku decyduje ostatni znak.
CH
W tym poprawionym już nie :) wszystko z powodu rozpędu :)
bogdans
Do poprawności jeszcze daleko, ciąg 34-87,98.06 reprezentuje liczbę? Ostatnie dwa wiersze można zapisać krócej return wynik;
M0
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:13
0
Christosc napisał(a):
Kopiuj
     public boolean metoda(char[] slowo) {
        boolean wynik = false;
        for (Character litera: slowo) {
            if (litera.isDigit(litera) || litera == ',' || litera == '.' ) {
                wynik = true;
            } else {
                wynik = false;
            }
        }
        return wynik;
    }

Na zdrowie :) przecinek i kropka żeby uwzględnić liczby zmiennoprzecinkowe :)
BTW jak tam sesja ?

Dzieki wielkie :) Zaraz sprawdze czy jest ok :) Powiem szczerze ze za tydzien sesja a wydaje mi sie ze obleje ;/ Ale dzieki wielkie za pomoc!! :)

CH
Buraka zrobiłem sprawdź tą poprawioną wersję.
M0
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:13
0
Christosc napisał(a):
Kopiuj
    public boolean metoda(char[] slowo) {
        boolean wynik = true;
        for (Character litera: slowo) {
            if (litera.isDigit(litera) || litera == ',' || litera == '.' ) {
               
            } else {
                wynik = false;
            }
        }
        if (wynik == false) return false;
        else return true;
    }

Na zdrowie :) przecinek i kropka żeby uwzględnić liczby zmiennoprzecinkowe :)
BTW jak tam sesja ?

Wybacz sam się połapałem, że zrobiłem buraka w drugą stronę, ale już poprawione.

Niestety tym razem zostaje ostni el tablicy do sprawdzenia czy jest liczba czy nie ;/ ale i tak bardzo dziekuje za szybka pomoc ;)

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
1

@maclaw01: dostałeś kod (błędny) i wskazanie błędu. Nie potrafisz poprawić?

Kopiuj
public boolean metoda(char[] slowo){
for(Character litera : slowo){
if(!Character.isDigit(litera))
return false;
}
return true;
}

Jeśli dopuszczalne są liczby ujemne i zmiennoprzecinkowe, to funkcja się mocno skomplikuje. Musisz dopuścić - na pierwszym miejscu, oraz jedną kropkę lub przecinek


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
CH
CH
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:8
1

Nie wiem jak u ciebie, u mnie dla:

Kopiuj
        char[] slowo  = new char[] {'1', '2', '3', '4', '3', '5', '6'};
        System.out.println(l.metoda(slowo)); 

wynikiem jest true
a dla:

Kopiuj
        char[] slowo  = new char[] {'1', '2', '3', '4', '3', 'a', '6'};
        System.out.println(l.metoda(slowo)); 

jest false

M0
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:13
0
bogdans napisał(a):

@maclaw01: dostałeś kod (błędny) i wskazanie błędu. Nie potrafisz poprawić?

Kopiuj
public boolean metoda(char[] slowo){
for(Character litera : slowo){
if(!Character.isDigit(litera))
return false;
}
return true;
}

Jeśli dopuszczalne są liczby ujemne i zmiennoprzecinkowe, to funkcja się mocno skomplikuje. Musisz dopuścić - na pierwszym miejscu, oraz jedną kropkę lub przecinek

Nie rozumiem po co ! <-- zaprzeczać? Wtedy będzie odwrotnie całkowicie ;) Jednak każdy z tych kodów sprawdza tylko 1 element tablicy. Jednak w tym zadaniu trzeba tjb jesli est tablcachar [] xxx = new char[2];
xxx[0] = 'a';
xxx[1] ='4';

Sprawdzić wszystko i dopiero czy false czy true ;)

Ale i tak bardzo Dziekuje wam za częściowe rozwiązanie właściwie tyle mi już wystarczy :)

M0
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:13
0
Christosc napisał(a):

Nie wiem jak u ciebie, u mnie dla:

Kopiuj
        char[] slowo  = new char[] {'1', '2', '3', '4', '3', '5', '6'};
        System.out.println(l.metoda(slowo)); 

wynikiem jest true
a dla:

Kopiuj
        char[] slowo  = new char[] {'1', '2', '3', '4', '3', 'a', '6'};
        System.out.println(l.metoda(slowo)); 

jest false

Dokladnie Twój działa dobrze :D Thx mordo !! :D

CH
Tak jak bogdans pisał - daleko mu do doskonałości i jeszcze kilka warunków można by sprawdzać... :)
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

@maclaw01: bzdury opowiadasz. Nie trzeba sprawdzać wszystkiego by wiedzieć,że jest źle. Wystarczy znaleźć jeden niewłaściwy znak.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
CH
CH
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 4 lata
  • Postów:8
1

Jeśli przy pierwszym błędzie to może być tak:

Kopiuj
     public boolean metoda(char[] slowo) {
        for (Character litera: slowo) {
            if (litera.isDigit(litera) || litera == ',' || litera == '.' ) { 
            } else {
                return false;
            }
        }
        return true;
    }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.