charakter in einem string finden

Status
Nicht offen für weitere Antworten.

shino

Mitglied
hi zusammen.
ich hab diese routine gebastelt, um einen charakter in einem string zu finden.

Java:
public static int findChar(String s, char c) {
for (int i=0; i<s.length(); ++i)
if (s.charAt(i) == c)
break;
return i;
}

jedoch hats hier wohl fehler, die ich aber nicht finde? ich seh nicht, was hier nicht stimmen soll? das programm läuft doch jeden char auf dem string durch und schaut, obs der char ist und wenn ja, dann gibt er die position aus. aber irgendwie hats wohl doch fehler drin?
 
Zuletzt bearbeitet von einem Moderator:

eRaaaa

Top Contributor
i gibts doch nach der schleife garnicht mehr:

probiers mal so
Java:
    public static int findChar(String s, char c) {
	int i;
	for (i = 0; i < s.length(); ++i)
	    if (s.charAt(i) == c)
		break;
	return i;
    }

p.s.: diese funktion gibts doch aber schon, oder sollst du die nachbauen?

gruß :D

/edit: achja, und was ist wenn der buchstabe garnicht drin vorkommt? :D
 

javimka

Top Contributor
Dieser Code compiliert ja wahrscheinlich gar nicht erst. Lösche das break, dann funktionierts.
 

shino

Mitglied
ja ich soll die funktion nachbauen, sonst hätt ich das ganze natürlich in der API nachgeschaut ;)
ach, das mit dem i war ja eigentlich logisch, dumm das man da nicht selbst drauf kommt :D

hmm, warum sollte das break stören? muss ja meiner ansicht da sein, da ansonsten die for-schleife nicht aufhört?

hab noch ne frage, was ist der unterschied ob ich jetzt ++i oder i++ benutze?
 

mvitz

Top Contributor
naja, anstelle von break könntest du doch auch direkt return i schreiben, dann bist du ja beim ersten Treffer auch aus der for-Schleife draußen.
 

eRaaaa

Top Contributor
hmm, warum sollte das break stören? muss ja meiner ansicht da sein, da ansonsten die for-schleife nicht aufhört?

bei einem return, wird die komplette methode beendet, also auch deine schleife :)


Java:
    public static int findChar(String s, char c) {
	for (int i = 0; i < s.length(); ++i) {
	    if (s.charAt(i) == c) {
		return i;
	    }
	}
	return -1;
    }


hab noch ne frage, was ist der unterschied ob ich jetzt ++i oder i++ benutze?

in deinem fall, garkeinen :D

ansonsten:
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 2.5 Ausdrücke, Operanden und Operatoren
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben