Permalänk
Medlem

java problem

Har lite problem med ett Java program, syftet är att läsa in en sträng och sedan ange en bokstav, efter det ska programet räkna ut hur många av den bokstaven som finns i strängen, det här är vad vi gjort hittills:

import java.io.*;
import java.util.*;

public class Uppgift5
{
public static void main(String[] args)throws IOException
{
BufferedReader myIn = new BufferedReader
(new InputStreamReader (System.in));

String s, rakna;
int counter = 0;

System.out.println("Skriv in den sträng du vill leta i: ");
s = myIn.readLine();

System.out.println("Vilken bokstav vill du räkna?");
rakna = myIn.readLine();

for(int i = 0; i <s.length();i++){

}
System.out.println("Strängen innehåller " +counter + " st " +rakna );
}
}

Just nu så går koden igenom, men vi försöker använda charAt() på något vis, men får inte till det, just nu så är det meningen att vi ska stega genom strängen och tanken är att på det sättet kunna kontrollera hur många gånger en viss bokstav förekommer, men vi får inte till det. Nån som kan hjälpa?

Visa signatur

Pentium 4 2.4 Ghz, Abit IS7-E, 500gb hd, Gainward Geforce FX5900 128 mb, 1024 mb ddr 400 mhz

Permalänk
Medlem

Något i den här stilen:

String s; char ch; //spara den inlästa bokstaven som en bokstav och inte en sträng int counter = 0; System.out.println("Skriv in den sträng du vill leta i: "); s = myIn.readLine(); System.out.println("Vilken bokstav vill du räkna?"); ch = myIn.readLine().charAt(0); //readLine() returnerar en stäng, charAt(0) plockar fram den första bokstaven for(int i = 0; i <s.length();i++) { if (s.charAt(i)==ch) //bokstaven hittades counter++; }

EDIT: Du kan också läsa in bokstaven med myIn.read() som returnerar ett heltal. Talet kan du sedan typkonvertera genom att skriva

ch = (char)myIn.read();

Visa signatur

Credo certe ne cras

Permalänk
Medlem

Här är ett förslag, går säkert att lösa det på flera/bättre sätt menmen:

String s = "Hejhej";
s = s.toLowerCase();
char c = 'h';
int counter = 0;

for(int i=0; i<s.length(); i++){
if(s.charAt(i)==c){
counter++;
}
}

System.out.println(counter);

Permalänk
Medlem

Tackar för hjälpen, nu har vi fått det att fungera.

Visa signatur

Pentium 4 2.4 Ghz, Abit IS7-E, 500gb hd, Gainward Geforce FX5900 128 mb, 1024 mb ddr 400 mhz