Zahlen, Groß-/Kleinbuchstaben aus String lesen

Thoomse

Grünschnabel
Hey,

Ich hab mein Problem schon so gut wie gelöst, nur sieht es recht unübersichtlich aus... von daher wollte ich fragen ob man mein Quelltext noch kürzer fassen kann...
Ich bin mir sicher das es geht, nur weiß ich nicht wie...

Hier ist ein Ausschnitt meines Quellcodes:
______________________________________________
Kette = in.getString("Geben Sie hier ihre Kette ein:");
laenge = Kette.length();
d=0;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='A')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='B')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='C')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='D')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='E')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='F')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='G')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='H')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='I')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='J')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='K')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='L')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='M')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='N')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='O')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='P')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='Q')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='R')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='S')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='T')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='U')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='V')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='W')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='X')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='Y')d++;
for(i=0;i<laenge;i++)
if(Kette.charAt(i)=='Z')d++;
System.out.println("Es sind "+d+" Großbuchstaben in der Zeichenkette enthalten");
_____________________________________________
es ist halt extrem Aufwendig alles so aufzuschreiben ... wie geht es kürzer?
Danke im Vorraus

MfG,
Thoomse
 
Hy

Ja es geht um einiges kürzer (und vorallem auch "billiger")

Code:
package demos;

public class CharsDemo {

	private static int countUppercaseChars( String s ) {
		int counter = 0;
		for( int i = 0; i < s.length(); i++ ) {
			if( Character.isUpperCase( s.charAt( i ) ) ) counter++;
		}
		return counter;
	}
	
	public static void main( String[] args ) {
		String s = "Hello World!";
		int result = countUppercaseChars( s );
		System.out.println( "Es sind " + result + " Grossbuchstaben vorhanden" );
	}
}

gruss
ben
 
Hallo!

Gring auch noch kuerzer:
Code:
   package de.tutorials;
   
   public class StringExample {
   
   	/**
   	 * @param args
   	 */
   	public static void main(String[] args) {
   		String s = "AdhhhBdDDhjhjkEhdalIhadO";
   		System.out.println(s.split("[A-Z]").length - 1);
   	}
   }
Edit... dies hier funktioniert natürlich nicht immer...
String s = "AdhhhBdDDhjhjkEhdalIhadO";
war (mal wieder) mehr Spielerei als nützlich...
Dafür funktioniert dies hier umso besser ;-)
Code:
 System.out.println("FaBcDeFgHiAAaaa".replaceAll("[a-z]","").length());

Gruss Tom
 

Neue Beiträge

Zurück