Java, Räkna hur gånger en bokstav finns i ett ord.

Permalänk
Medlem

Java, Räkna hur gånger en bokstav finns i ett ord.

Hej, jag behöver hjälp med en java uppgift där användaren ska skriva en bokstav och ett ord. Programmet ska räkna ut hur många gånger bokstaven finns i ordet. Finns det en specifik funktion för att räkna ut det eller om jag gör en loop?

Permalänk
Medlem

Detta är ganska basic stuff som du garanterat kan hitta på nätet om du anstränger dig lite.
Börja med att kolla basics gällande strängar.

Permalänk
Medlem

Hur hade du gjort om du räknat själv?
Bestäm dig för en bokstav och titta sedan på en bokstav i taget i ordet, öka på antalet om du ser den siffra du är intresserad av.

Skickades från m.sweclockers.com

Visa signatur

:(){ :|:& };:

🏊🏻‍♂️   🚴🏻‍♂️   🏃🏻‍♂️   ☕

Permalänk
Medlem

Klassen String har medlemmarna lenght() och charAt(int) String dokumentation.

Vill du ha läxhjälp i framtiden så lägg upp koden som du har skrivit och beskriv felet.

Permalänk
Medlem

Som fp1 säger har klassen String utmärkta verktyg för vad du försöker göra.
Kom ihåg att String egentligen bara är en Array (om du inte redan visste det har du lärt dig något nytt).

Visa signatur

Stationär: Core i9 13900k | Asus X790 ROG Strix Gaming-F | 32GB DDR5 | RX 7900 XT | Lian Li PC-O11 dynamic evo
Laptop: Macbook Air | Apple M1

Permalänk

@bjorkenz:

Du har säkert löst problemet men tänkte att jag ger ett svar ändå..

Det finns hur många olika sätt som helst att göra det på men ett sätt skulle va om du gör en method och anropar
den i din main och skickar in det du skrivit som parameter.

Litet exempel:

public class Test{ public static void main(String args[]){ Scanner input = new Scanner(System.in); System.out.println("Skriv ett ord eller fler: "); String ord = input.nextLine(); System.out.println("Skriv en bokstav: "); char c = input.next().charAt(0); countMethod(ord,c); //i methoden tar vi in det vi skrev ovan } static void countMethod(String str, char chars) { int count = 0; int index = 0; while(true){ //loopar igenom när vi matat igenom ord och bokstav index = str.indexOf(chars, index)+1; if(index == 0){ break; } count++; } System.out.println("Totalt "+count+" ("+chars+") i texten "+str); } }

Permalänk
Medlem

@Arbetslös: Lite kompaktare variant

import java.util.Scanner; public class Test{ public static void main(String args[]) { Scanner input = new Scanner(System.in); System.out.println("Skriv ett ord eller fler: "); String ord = input.nextLine(); System.out.println("Skriv en bokstav: "); char c = input.next().charAt(0); countMethod(ord, c); } static void countMethod(String str, char chars) { int count = 0; for(int i = 0; i < str.length(); i++) { if (str.charAt(i) == chars) count++; } System.out.println("Totalt "+count+" ("+chars+") i texten "+str); } }

Permalänk
Medlem

Detta är också enkelt löst med regex, då kan du stödja mer avancerade sökningar i framtiden:

https://stackoverflow.com/a/7378472

Permalänk
Datavetare

Om vi utgår från att läxan redan är inlämnad, går att göra själva räknade av tecken som en "one-liner" i Java8

import java.util.Scanner; import java.util.stream.IntStream; class CountChar { public static void main(String args[]){ Scanner input = new Scanner(System.in); System.out.println("Skriv ett ord eller fler: "); String myWords = input.nextLine(); System.out.println("Skriv en bokstav: "); char myChar = input.next().charAt(0); // Gör strängen till en ström av tecken, filtera bort alla som inte är // lika med 'myChar' och räkna hur många som blev kvar. long numCh = myWords.chars().filter(c -> c == myChar).count(); System.out.println("Totalt " + numCh + " (" + myChar + ") i texten " + myWords); input.close(); } }

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer