Licznik liter

TheLearner
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Krypton
  • Postów:298
0

Witam. Kolejne zadanie od początkującego:
Napisz program, który wyświetla prośbę o podanie łańcucha znaków, a następnie o wprowadzenie znaku. Program powinien zliczyć i wyświetlać liczbę wystąpień określonego znaku w łańcuchu.
Co jest jasne:

  • wyświetlanie prośby o podanie łańcucha znaków
    Z czym problem?:
  • Pierwszy raz spotykam się z pobieraniem char. Czy .next().charAt(0) będzie ok?
  • Zliczenie i wyświetlenie ilości wystąpień wprowadzonego char

Z góry dziękuje za pomoc


krancki
  • Rejestracja:prawie 7 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:74.7261832, -41.7409518
  • Postów:151
0

I co masz już zrobione? Nadal nie widzę żadnego problemu, potrzebujesz coś to szukasz w internetach.

talk is cheap show me the code

edytowany 1x, ostatnio: krancki
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Silesia/Marki
  • Postów:5505
3
Kopiuj
public class HelloWorld {

     public static void main(String[] args) {
        String readString = "Scala forever! Because is better then Java";
        char readChar = 'e';
        long count = readString
            .chars()
            .mapToObj(c -> (char) c)
            .filter(c -> c ==  readChar)
            .count();
        System.out.println(count);
     }
}

Wczytywanie zmienych trzeba by dorobić jeszcze


Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
Zobacz pozostały 1 komentarz
KamilAdam
Niestety nie rozumiem zmiennego stanu i pętli for :(
jarekr000000
fory nie są prostsze, są ultra pokiełbaszone
K5
Z tym trudnym to żartowałem ironizując. Po prostu początkujący mają problemy z whileami itp, a co dopiero widząc kod na streamach. Zresztą komu ja to tłumaczę ;)
jarekr000000
@kixe52: właśnie różnie. My jestesmy od dawna do pętli i zmiennych przyzwyczajeni, bo tak się uczyliśmy. Jest cała masa ludzi, którzy jak widzą x = x+1 pierwszy raz to im wypala mózg. Zresztą, to nawet debilnie wygląda, trudno się dziwić.
vpiotr
Zgadzam sie. Pamietam jak dzis jak sie uczylem o FOR to mi wykrecalo mozg. Przy Lisp i FORTH nie mialem takiego wrazenia.
TheLearner
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Krypton
  • Postów:298
0
Kamil Żabiński napisał(a):
    long count = readString
        .chars()
        .mapToObj(c -> (char) c)
        .filter(c -> c ==  readChar)
        .count();
 }

Ok, to pomaga, ale wydaje mi się, że powinna być jakaś łatwiejsza droga. Jest to zadanie z ćwiczeń dla mocno początkujących osób z zerową wiedzą z zakresy programowania. Mój kod wygląda teraz tak:

import java.util.Scanner;
Scanner input = new Scanner(System.in);

    // prosba o podanie lancucha znakow
    System.out.println("Wprowadz zdanie:");
    String a = input.nextLine();

    //prosba o wprowadzenie znaku
    System.out.println("Wprowadz znak by sprawdzic ile razy wystepuje w zdaniu:");
    char b = input.next().charAt(0);

    // ile razy wystepuje okreslony znak?
    long c = a
            .chars()
            .mapToObj(d -> (char) d)
            .filter(d -> d == b)
            .count();
    System.out.println(c);

Działać, działa, ale czy można to uprościć?


K5
  • Rejestracja:około 6 lat
  • Ostatnio:dzień
  • Postów:1002
0

@Kamil Żabiński: dał Ci najszybszy sposób.

Jak chcesz zrobić to "po początkującemu" to przejdź forem po wczytanym zdaniu/napisie i sprawdzaj znak po znaku czy równa się danemu znakowi. Jeśli tak to inkrementuj licznik (wcześniej dokonaj inicjalizacji na 0).

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

@TheLearner: Moja podpowiedź dla Ciebie, jest taka metoda jak toCharArray
Chyba pętle i instrukcje warunkowe już znasz?


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
D0
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 3 lata
  • Postów:13
1

String a = "", b = "";
Scanner s = new Scanner( System.in );

    System.out.println( "Podaj łańcuch znaków: " );
    a = s.nextLine();
    while ( b.length() != 1 )
    {
        System.out.println( "Podaj jeden znak z ciągu znaków: " );
        b = s.next();
    }

    int licznik = 0;
    for ( int i = 0; i < a.length(); i++ )
    {
        if ( b.equals(a.charAt( i ) +"") )
            licznik++;
    }
    System.out.println( "Liczba wystąpień znaku: " + licznik );

Łatwiejsza opcja

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

Nieprawda, samo zliczanie może być łatwiesze

Kopiuj

for (char i: str.toCharArray()){
            if (c == i) {
                count++;
            }
}    

c to jest zliczany znak, str to string


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
TheLearner
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Krypton
  • Postów:298
0

Dzięki wszystkim za pomoc, wszystko jest zrozumiałe i działa, ale wciąż nie tego szukam. Chodzi o to, że korzystam z ćwiczeń które nakazują użycia wiedzy z określonych, zamkniętych działów książki. Żadne z podanych rozwiązań (chociaż poprawne) nie mieści się w tym zakresie książki, a tym samym po prostu sam nie wiem czego z tego działu nie zrozumiałem. A czegoś nie zrozumiałem, skoro nie potrafię tego zrobić. Nie jestem też w stanie wypisać jakie metody etc zawiera dział, bo jest tego dużo.
Tak czy siak dziękuje za pomoc, muszę chyba po prostu czytać dział od początku do końca do skutku aż wyłapie o co chodziło autorowi ćwiczenia.
Pozdrawiam


K5
XD To może daj chociaż tytuł tego działu? Nie chce mi się wierzyć, że masz zadanie zliczyć ilość wystąpień danego znaku w napisie i nie możesz użyć do tego pętli for...
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
0

@TheLearner: a możesz powiedziec to co za ksiązka i który rozdział? Bo aż sam jestem ciekaw. Może jest słabo napisana, a może zakłada że sam powinienes móc poszukac rozwiązania w jakims stopniu :)


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
TheLearner
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Krypton
  • Postów:298
0

Java dla zupełnie początkujących, Tony Gaddis, wydanie VII, rozdział 4. Do tej pory byłem w stanie wszystko robić na podstawie wiedzy w działach, ale możliwe, że faktycznie tak jest. Wtedy niepotrzebnie się męczę.


edytowany 1x, ostatnio: TheLearner
S9
A jaki rozdział?
S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

Pobieznie przejrzałem co jest w spisiie treści, wydaje sie że podstawa wiedza ogólna w tym rozdziale jest wystarczająca. Ale nie przejmuj się, jestes początkujący, może nie wpadłeś jeszcze na rozwiązanie ;)


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"
D0
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 3 lata
  • Postów:13
0

Jak oceniasz tą książkę? bo wyszła w tym roku i zastanawiałem się nad kupnem. Postaraj się poszukać informacji na stackoverflow. i może coś skojarzysz

edytowany 1x, ostatnio: Dawid040791
BraVolt
  • Rejestracja:prawie 6 lat
  • Ostatnio:prawie 4 lata
  • Lokalizacja:Warszawa
  • Postów:2918
0

https://www.udemy.com/java-the-complete-java-developer-course/

Cena 42 zł

Kurs załatwia temat gruntownego poznania podstaw Java.
80 godzin nauki na Javy.


"Kiedy wiedzieć czy zacząć nauke Springa? bo w czystej Javie to nic ciekawego nie zrobie chyba"
Ein Volk, ein Reich, ein Kwa-Kwa ***** ***
TheLearner
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Krypton
  • Postów:298
1
Dawid040791 napisał(a):

Jak oceniasz tą książkę? bo wyszła w tym roku i zastanawiałem się nad kupnem. Postaraj się poszukać informacji na stackoverflow. i może coś skojarzysz

Jako osobie na samym starcie nauki ciężko mi ocenić, ale kupiłem trzy książki do Javy i ta jest dla mnie najbardziej zrozumiała + posiada ćwiczenia. Część ćwiczeń ma też klucz, ale mniejszość. Dwie pozostałe były czarną magią i dopiero po zapoznaniu się z tą, zaczynam też rozumieć co w poprzednich pisało. Dla takich jak ja chyba godna polecenia, a jak ktoś umie programować w innym języku to pewnie się zanudzi.


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.