Så här tex
String a="ahsahad";
int antal=0;
char find='a';
for(int i=0;i<a.length();i++)
if(a.charAt(i)==find)
antal++;
System.out.println("Det fanns "+antal+"st "+find);
/Viktor
10 svar · 612 visningar · startad av Addeladde
Hej hur gör jag för att räkna ut detta:
exempel:
Skriv in en textsträng: ahsahad
Skriv en ett tecken som ska räknas: a
Det finns 3 st a i textsträngen.
Så här tex
String a="ahsahad";
int antal=0;
char find='a';
for(int i=0;i<a.length();i++)
if(a.charAt(i)==find)
antal++;
System.out.println("Det fanns "+antal+"st "+find);
/Viktor
Jag hade igentligen lyckats göra den här lilla funktionen men problemet ligger i att när jag läser in en bokstav i variabeln find så läser jag in den med readLine och då får det typen String.
Det går inte att gämföra charAt med String.
Nu är frågan hur omvandlar jag String till char?
Kan du lägga ut koden?
Har inte gjort konsol program på några år så jag kommer inte ihåg hur man skriver :)
/Viktor
Här kommer den:
Om du undrar varför jag gör ett sådant här konstigt program så är det för att jag går en kurs och håller på med övningar.
import java.io.*;
// Denna klass innehåller starten för lab3.
public class Lab3 {
/* main() är (som alltid) klassmetoden som utgör startpunkten då
programmet exekveras. */
public static void main(String[] args) throws IOException {
/* Deklarera en (lokal) variabel som kan hålla reda på en
bokstavspusslare. */
Bokstavspusslare minPusslare;
/* Skapa bokstavspusslaren med hjälp av klassen/mallen
Bokstavspusslare samt låt variabeln hålla reda på det
nyskapade objektet. */
minPusslare = new Bokstavspusslare();
Bokstavsräknare minBokstavsräknare;
minBokstavsräknare = new Bokstavsräknare();
// Låt pusslaren jobba...
minPusslare.pussla();
minPusslare.skrivVälkomsttext();
minBokstavsräknare.räknaBokstav();
minBokstavsräknare.räknaBokstav();
minBokstavsräknare.skrivTotalAntal();
} // main()
} // Lab3
/* Denna klass beskriver en bokstavspusslare. Bokstavspusslaren
kommer i sin tur att ta hjälp av en bokstavsräknare. */
class Bokstavspusslare {
/* "indata" kan användas för att läsa från tangentbordet. Den är
en instansvariabel och kan därför användas av alla metoder i
denna klass. */
BufferedReader indata =
new BufferedReader(new InputStreamReader(System.in));
/* "utdata" kan också utnyttjas i alla metoder i denna klass. */
PrintStream utdata = System.out;
/* Håll reda på vem som kör programmet med hjälp av
instansvariabeln som deklareras här. */
String användarnamn;
/* Håll reda på bokstavsräknaren med hjälp av instansvariabeln
som deklareras här. */
int bokstavsräkanre;
// Låter denna bokstavspusslare pussla lite...
public void pussla() throws IOException {
utdata.println("Börjar pussla...");
utdata.println();
taRedaPåNamnet();
// Fler satser kommer här...
} // pussla()
// Skriver ut en kort välkomsttext på skärmen.
public void skrivVälkomsttext() {
utdata.println("Välkommen " + användarnamn + "!");
} // skrivVälkomsttext()
// Fler metoder() kommer här...
public void taRedaPåNamnet() throws IOException {
utdata.print("Vad heter du? ");
användarnamn = indata.readLine();
}
} // Bokstavspusslare
class Bokstavsräknare{
PrintStream utdata = System.out;
BufferedReader indata =
new BufferedReader(new InputStreamReader(System.in));
int antal;
int totalAntal = 0;
public void räknaBokstav() throws IOException {
char bokstav;
String text;
utdata.print("Skriv in en textstrang: ");
text = indata.readLine();
utdata.print("Skriv in en bokstav: ");
String b = indata.readLine();
int s = text.length();
antal = 0;
bokstav = b.charAt(0);
for (int i = 0; i < s; ++i)
if (text.charAt(i) == bokstav)
antal++;
totalAntal = totalAntal +antal;
utdata.println(text + " innhåller " + antal + " st " + bokstav + "!");
}
public void skrivTotalAntal(){
utdata.println("Totalt skrevs " + totalAntal + " tecken ut");
}
}
Ok
Vet du förresten hur man kan få åäö att funka. Har läst trådarna här på webforum men inte fått det att funka
EDIT: Ser nu att det inte fungerar i utskriften från programmet.
EDIT2: Använd inte åäö i namn på funktioner och variabler.
Fungerar ganska bra för mig
Vad heter du? Öland Åland
Võlkommen Öland ?land!
Skriv in en textstrang: ÖÖÖäääÅÅÅ
Skriv in en bokstav: å
ÖÖÖäää??? innhÕller 0 st å!
Skriv in en textstrang: ååääöö
Skriv in en bokstav: f
ååääöö innhÕller 0 st f!
Totalt skrevs 0 tecken ut
Antar att du kör med Win98/ME som inte stödjer Unicode. Vet tyvärr inte hur man gör för att det ska fungera där.
/Viktor
Jag kör win2000
Det ska ju inte stå Võlkommen utan välkommen.
Det är det som jag vill komma till rätta med