Wpis z mikrobloga

Witantus. W ramach nauki javy robię sobie zadanka jakiegoś wykładowcy, które znalazłem w sieci. Zadanie polega na zdefiniowaniu funkcji 'int strpos(String text, char z)', która zwraca pozycję, na której znajduje się znak z w łańcuchu text. Jeżeli znaku nie ma to zwraca 0. Napisanie kodu, który zwraca pozycję znaku powtarzającego się jeden raz dam radę napisać. Co robić w przypadku, gdy dany char powtarza się kilka razy? Metoda ma zwrócić tablicę? Wtedy założenia treści zadania nie są spełnione, bo miała zwracać int. Jedyne co mi przychodzi do głowy to niezbyt poprawne rozwiązanie z użyciem System.out.println, bo metoda nie zwraca wartości tylko ją wypisuje. Ktoś ma jakiś pomysł? Może coś z rekurencją :P

Kod z System.out.println
#naukaprogramowania
  • 13
@kubabe dziwny trochę ten kod.
Personalnie liznąłem jedynie c/cpp/PHP/js
U ciebie funkcja robi printa co raczej nie powinno mieć miejsca.
I odnośnie pytania co się stanie jak będzie więcej z.
To proste zostanie zwrócona pozycja ostatniego z.
Możesz to rozwiązać tworząc tablicę intów i potem ją zwrócić.
Obok fora zaimplementują inta służącego jako pomocnicza dla tablicy. I potem
For if char==z
tablicą[pomocnicza]=i
I potem return tablicę.
Ogólnie to nie jestem pewien czy
@kubabe: nie podałeś treści zadania ale jak ma int zwracać to zwracasz wartości jak znajdziesz pierwszy znak który chciałeś. Jak sam dla siebie chcesz to zrobić to zamiast zwracać znaku dodawaj go do tablicy a po przejściu wszystkiego poza pentla zwracaj tablice
@kubabe: Jeśli zwraca 0, to szukany znak jest pierwszym znakiem w podanym Stringu. Domyślnym zachowaniem w przypadku nie znalezienia znaku jest zwrócenie -1, a nie 0. Według mnie nie ma sensu robić pętli po Stringu skoro ta klasa posiada metodę indexOf(String) lub indexOf(String, int), która robi tyle ile chcesz a nawet i więcej.

Jeśli nie wierzysz i chcesz się bawić pętlami, to znalazłem też definicje strpos dla PHP, żebyś wiedział, czego
@wczoraj @Kiciuk: Treść zadania:

Zdefiniować funkcję int strpos(String text, char z) , która zwraca indeks na którym znajduje się znak z (drugi parametr) w podanym łańcuchu text . Jeżeli znak z nie występuje w łańcuchu, to wynikiem funkcji powinno być -1. Uwaga - pozycje znaków numerujemy począwszy od 0.

Chyba zbyt kurczowo chciałem się trzymać zadania i zamiast zwracać tablicę chciałem załatwić to samym int. Myślałem, że da się to jakoś
raczej patrzę przez pryzmat tego że komórka w tablicy zawiera wartość typu int.
Gdyby wywalić typeof to oczywiście na tablicy wyrzuci że array albo object.
@Kiciuk

raczej patrzę przez pryzmat tego że komórka w tablicy zawiera wartość typu int


To tak jakby powiedzieć, że cukier i cukiernica to to samo.

W Javie nie ma typeof. :-P