Variable für Alphabet oder Zahlen?

Aahn

Grünschnabel
Liebes Forum,

ich muss einen String auf diverse Zeichen und Nummern überprüfen. Ich möchte nun einen Teilstring darauf überprüfen ob er mit einem buchstaben oder einer zahl beginnt. Jedoch ist es mir nicht ganz möglich. hier ein auszug aus meinem programm

Code:
String a = sLic.substring(3, 12);
		
		if(a.startsWith(eins || zwei || drei))
		{
			System.out.println("Test2.Abfrage beginnt mit einer zahl!!");
		}

sLic ist im dem fall der input string der 20 zeichen lang ist und in meinem beispiel nur aus zahlen besteht. ich möchte nun den beginn des substring a auf das alphabet oder auf zahlen prüfen, leider weiß ich nicht genau wie ich das am einfachsten machen soll.

hat jemand eine idee?

lg
 
Moin,

sorry, aber meine Glaskugel ist gerade kaput:
was ist denn wohl "eins, zwei oder drei" :confused:

Hier mal die Syntax von 'startsWith':
Code:
/* Font definitions */ body, h1, h2, h3, h4, h5, h6, p, table, td, caption, th, ul, ol, dl, li, dd, dt {font-family: sans-serif; font-size: 9pt } pre				{ font-family: monospace; font-size: 9pt }  /* Margins */ body	     { overflow: auto; margin-top: 0; margin-bottom: 4; margin-left: 3; margin-right: 0 } h1           { margin-top: 5; margin-bottom: 1 }	 h2           { margin-top: 25; margin-bottom: 3 } h3           { margin-top: 20; margin-bottom: 3 } h4           { margin-top: 20; margin-bottom: 3 } h5           { margin-top: 0; margin-bottom: 0 } p            { margin-top: 10px; margin-bottom: 10px } pre	         { margin-left: 6 } ul	         { margin-top: 0; margin-bottom: 10 } li	         { margin-top: 0; margin-bottom: 0 }  li p	     { margin-top: 0; margin-bottom: 0 }  ol	         { margin-top: 0; margin-bottom: 10 } dl	         { margin-top: 0; margin-bottom: 10 } dt	         { margin-top: 0; margin-bottom: 0; font-weight: bold } dd	         { margin-top: 0; margin-bottom: 0 }  /* Styles and colors */ a:link	     { color: #0000FF } a:hover	     { color: #000080 } a:visited    { text-decoration: underline } h4           { font-style: italic } strong	     { font-weight: bold } em	         { font-style: italic } var	         { font-style: italic } th	         { font-weight: bold } boolean java.lang.String.startsWith(String prefix)

  
startsWith

public boolean startsWith(String prefix) Tests if this string starts with the specified prefix.  
    Parameters: prefix - the prefix.  Returns: true if the character sequence represented by the argument is a  prefix of the character sequence represented by this string; false  otherwise. Note also that true will be returned if the argument is  an empty string or is equal to this String object as determined by  the equals(Object)  method. Since:  1. 0

Du musst Dir also schon sehr genau überlegen, was Du prüfst!

Einfacher wären wohl Pattern und reguläre Ausdrücke, weil dabei auch auf die Art der Zeichen ([a-z,A-Z] usw.) prüfen kannst.

Eine gute Übersicht zu den Java Pattern liefert diese Seite:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html

Gruß
Klaus
 
hm ja, das stimmt dann werd ich mir mal die klasse pattern anschaun und diese abfrage mal damit probieren =)

danke
 
da ich noch nie mit pattern gearbeitet habe, hab ich nun ein paar fragen:

Code:
Pattern p = Pattern.compile("\\d"); // teste ich ihn hiermit auf zahlen?
Matcher m = p.matcher("sLic.substring(12,14"); // ich ihn hiermit die position von meinem string zwischen 12 und 14 geben (das wäre 05 in meinem fall).

boolean b = m.matches();

//als resultat bekomm ich false.

ich möchte ihn einfach nur fragen ob er auf der 12-14 position eine zahl bzw einen buchstaben hat. hätte ihc das so wie oben richtig gemcaht oder wo ist der haken?
 
so also nach längerem probieren komme ich nun zu folgendem problem:

Code:
String prüfString =(sLic.substring(14, 20));		
		System.out.println("Test 4. Abfrage " + prüfString);
		String pattern = "\\d";
		Pattern patternPrüf = Pattern.compile(pattern);
		
		Matcher m = patternPrüf.matcher(prüfString);
		boolean b = m.matches();
		if(b == true)
		{
			System.out.println("Pattern gefunden");
		}
		else
		{
			System.out.println("Pattern nicht gefunden");
		}

sLic.substring liefer den wert 504447..
ich wollte hier testen ob prüfString aus zahlen besteht, also sollte in diesem fall ja "pattern gefunden rauskommen" doch dem ist nicht so und ich erhalte das gegenteil und hab echt keine ahnung warum.

so dies ist das ergebnis:

Code:
Test 4. Abfrage 504447
Pattern nicht gefunden

wol iegt denn da jetzt der fehler, das ist nämlich für mich gerade unlogisch
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück