cannot find symbol method equalsIgnoreCase?

Status
Nicht offen für weitere Antworten.

belimo

Mitglied
Hallo Leute

Ich habe folgenden Code, welche drei Textfelder und 4 Buttons erzeugt.

Code:
/**
 * @(#)pruefungsVorbereitung.java
 *
 * pruefungsVorbereitung Applet application
 *
 * @author 
 * @version 1.00 2006/12/12
 */
 
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class pruefungsVorbereitung extends Applet implements ActionListener {
	
	private TextField str1, str2, ausgabe;
	private Button test1, test2, test3, test4;
	private Label bStr1, bStr2, bAusgabe;
	private String stringStr1, stringStr2, stringAusgabe; 
		
	public void init() {
		bStr1 = new Label ("str1:");
		bStr2 = new Label ("str2:");
		bAusgabe = new Label ("Ausgabe:");
		str1 = new TextField(10); 
		str2 = new TextField(10);
		ausgabe = new TextField(40);
		
		test1 = new Button ("Ist str1 = str2?");
		test2 = new Button ("kommt str1 vor oder nach str2?");
		test3 = new Button ("ist str1 Prae- oder Suffix von str2");
		test4 = new Button ("Zaehle wieviel mal str1 in str2 ist");
		
		add(bStr1); add(str1); add(bStr2); add(str2); add(bAusgabe); add(ausgabe); add(test1); add(test2); add(test3); add(test4);
		str1.addActionListener(this); str2.addActionListener(this); ausgabe.addActionListener(this);
		test1.addActionListener(this); test2.addActionListener(this); test3.addActionListener(this);
		test4.addActionListener(this);
	}

	public void paint(Graphics g) {
		
	}
	
	public void actionPerformed (ActionEvent myEventName) {
		if (myEventName.getSource() == str1) {
			stringStr1 = str1.getText();			
		}
		if (myEventName.getSource() == str2) {
			stringStr2 = str2.getText();			
		}
		if (myEventName.getSource() == test1) {
			if ( str1.equalsIgnoreCase( str2 ) == false ) {
				ausgabe.setText("Die Strings sind NICHT gleich!");
			} else {
				ausgabe.setText("Die Strings sind gleich!");
			}
			repaint();	
		}
		if (myEventName.getSource() == test2) {
			stringStr1 = str1.getText();			
		}
		if (myEventName.getSource() == test3) {
			stringStr1 = str1.getText();			
		}
		if (myEventName.getSource() == test4) {
			stringStr1 = str1.getText();			
		}
		
		
	}
	
}

Und ich habe folgende Fehlermeldung:
cannot find symbol method equalsIgnoreCase(jawa.awt.TextField)

Ich kann mir das nicht erklären. Weiss jemand ein Tipp? Wäre wirklich dankbar :)
 

belimo

Mitglied
Ach bin ich blöd.

Es soll natürlich
Code:
stringStr1.equalsIgnoreCase( stringStr2 )

heissen :D

Danke für die schnelle Hilfe!

Noch eine kurze Zusatzfrage:
Wenn ich jetzt in das Textfeld str1 einen Text eingebe, muss ich zwingend Enter drücken, damit Java, den Text übernimmt. Gibt es eine Möglichkeit, dass ich das nicht muss? Also, dass Java den Text auch übernimmt, wenn ich gleich im nächsten Feld (str2) einen Text eingebe?

Gruss belimo
 

belimo

Mitglied
:? OK, den FocusListener hatten wir bisher noch nicht - schau ich mir aber mal an ;-)

Noch eine andere Frage:

Ich möchte nun mit dem Button test2 vergleiche, ob str1 in str2 vorkommt und wenn ja, ob der vorne oder hinten ist.

Ich versuchte das mal so:
Code:
		if (myEventName.getSource() == test2) {
			if ((stringStr1.matches(stringStr2 + ".*")) == true ) {
				ausgabe.setText("str1 ist am Anfang des str2");
			}
			if ((stringStr1.matches(".*" + stringStr2)) == true ) {
				ausgabe.setText("str1 ist am Ende des str2");
			}
		}

Wobei ich mit .* sagen will - beliebig viele beliebige Zeichen :)

Anscheinend funktioniert das nicht. Hast du mir noch einen Tipp?[/code]
 
S

SlaterB

Gast
keep it simple:
nimm die ersten oder letzten x Zeichen (Länge weißt du), substring und vergleiche konventionell

für den Anfang kannst du auch startsWith() verwenden

edit: ach, gibt auch endsWith()... ;)
 

belimo

Mitglied
Stimmt, so ginge es auch, nur soll eben genau diese Aufgabe mit Regulären Ausdrücken gelöst werden :D

Und so wie ich es probiert habe müsste es ja prinzipiell gehen, oder?

EDIT: Wenn ich in zum Beispiel in stringStr1 und in stringStr2 "hallo" setze, kommt als Ausgabe: "str1 ist am Anfang des str2"

Schreibe ich jedoch in stringStr1 "hallo" und in stringStr2 "hallowelt" gibts keine Ausgabe :(

EDIT2: Was genau macht eigentlich, das oben erwähnte startswidt? Aus der Java-Doc werde ich nicht schlau:
startsWith
public boolean startsWith(List<Rdn> rdns)Determines whether the specified RDN sequence forms a prefix of this LDAP name. Returns true if this LdapName is at least as long as rdns, and for every position p in the range [0, rdns.size()) the component getRdn(p) matches rdns.get(p). Returns false otherwise. If rdns is null, false is returned.

Parameters:
rdns - The sequence of Rdns to check.
Returns:
true if rdns form a prefix of this LDAP name, false otherwise.
 
S

SlaterB

Gast
ich weiß ja nicht wo du schaust ;)

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
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html

zu dem Pattern schaue ich vielleicht später noch mal
oder jemand anders sagt es bald
 

belimo

Mitglied
Der Müde Joe hat gesagt.:
Code:
String s= "hallo.*";
String s2 = "halloWelt";

boolean matches = Pattern.matches(s,s2);

Suchst du das?
exakt, danke! :D

Wegen meiner Dok: Ich schaute in meinem lokalen JCreater. Aber das auf Sun tönt ja viel verständlicher :)
 

belimo

Mitglied
Der Müde Joe hat gesagt.:
Code:
String s= "hallo.*";
String s2 = "halloWelt";

boolean matches = Pattern.matches(s,s2);

Suchst du das?

EDIT, halt :gaen:

Im Prinzip suche ich schon das, nur sollen die beiden Strings aus einem Textfeld übernommen werden.
Die Strings heissen bei mir stringStr1 und stringStr2, und sind schon "abgefüllt".

Mein Problem ist jetzt, das .* an den einen String zu hängen. Vermutlich ganz einfach, wenn man weiss wie :D
 
S

SlaterB

Gast
String text = ..;
String s= text+".*";

probiere das doch erstmal bevor du Fragen stellst, das hattest du doch oben schon, nur einen falschen Match-Aufruf?


übrigens kriegst du Probleme, wenn der vorgegeben Text irgendwelche Pattern-Spezialsymbole wie . oder ? enthält,
davon gibts ja nicht wenige..
 

Der Müde Joe

Top Contributor
belimo hat gesagt.:
Wegen meiner Dok: Ich schaute in meinem lokalen JCreater. Aber das auf Sun tönt ja viel verständlicher :)

Die Dok hat nicht unrecht...nur schaust du am falschen Ort

LdapName#startsWith(List<Rdn> x)
String#startsWith(CharSequence s)

sind nicht dasselbe...sind nichtmal in den selben Paketen.
Sonst kann man die Dok auch runterladen und neu in den
JCreator reinladen.. (wo weiss ich nicht...Einstellungen wahrscheinlich)
Was eigenltlich eh immer so gemacht wird/wurde/sollte sein :)
 

belimo

Mitglied
SlaterB hat gesagt.:
String text = ..;
String s= text+".*";

probiere das doch erstmal bevor du Fragen stellst, das hattest du doch oben schon, nur einen falschen Match-Aufruf?


übrigens kriegst du Probleme, wenn der vorgegeben Text irgendwelche Pattern-Spezialsymbole wie . oder ? enthält,
davon gibts ja nicht wenige..

Habe inzwischen mal sowas getestet:

Code:
		if (myEventName.getSource() == test2) {
			
			String s= stringStr1 + ".*";
			String s2 = stringStr2;

			boolean passt = s2.matches(s);
			
			if (passt == true) {
				ausgabe.setText("str1 ist Praefix von str2");
			} else {
				ausgabe.setText("Fehler!");
			}	
		}

Funktioniert auch soweit.
Nun möchte ich aber, dass Java unterscheidet, ob Suffix oder Präfix. Das einzige was mir dazu einfällt, ist, dass ich das if mehrfach verschachteln könnte. Das sollte vermutlich gehen, aber gibt es nicht eine einfachere Lösung? (wenn möglich ohne das startswith/endwith)

Wegen den Problemen mit den Spezialsymbolen: Stimmt habe ich mir noch gar nicht überlegt. Ich denke aber - dass unser Dozent das von uns Anfängern noch nicht erwartet. Oder doch? Wie wäre das denn zu lösen?

Ach ja:
"probiere das doch erstmal bevor du Fragen stellst, das hattest du doch oben schon, nur einen falschen Match-Aufruf?"
Möglich, dass ich da zuwenig überlegt habe :)
 

Der Müde Joe

Top Contributor
Code:
String pre = ".*hallo";
String post = "hallo.*";

if( Pattern.matches( pre , str2)){
System.out.println("irgend was Hallo");
}
else if( Pattern.matches(post , str2)){
System.out.println("hallo irgend was");
}
else{
System.out.println("nix");

pronto....
 
S

SlaterB

Gast
schon mal was von if/ else gehört?

du schreibst es in deinem Code, scheinst aber den Sinn nicht verstanden zu haben,
denke mal scharf darüber nach...


edit: vielleicht nicht mehr aktuell, dennoch nützlich..
 

belimo

Mitglied
SlaterB hat gesagt.:
schon mal was von if/ else gehört?
edit: vielleicht nicht mehr aktuell, dennoch nützlich..

Ja, if und else habe ich schon verstanden, aber die Anwendung "else if" dafür nicht. Das wäre theoretisch ja das gleiche wie sowas oder:

Code:
		if () {
			
		} [color=red]else[/color] {
			
			[color=red]if[/color] ( ) {
				
			}
			
		} else {
			
		}

Das "else if" ersetzt ja das rote else und if, und dient einfach der lesbarkeit, oder?

In meinem Code (den ich ja nachträglich gelöscht habe) standen ja dann zwei ifs hintereinander, wodurch beide ausgeführt wurden.

Zum eigentlichen Thema. Mein Code sieht jetzt so aus, und funktioniert auch prima (wobei die oben gepostete Version natürlich schöner ist, da die Strings in separaten Variabeln outgelagert sind ;-)
Code:
		if (myEventName.getSource() == test2) {
			
			if ((stringStr2.matches(stringStr1 + ".*")) == true) {
				ausgabe.setText("str1 ist Praefix von str2");
			} else if ((stringStr2.matches(".*" + stringStr1)) == true) {
				ausgabe.setText("str1 ist Suffix von str2");
			} else {
				ausgabe.setText("Weder Suffix noch Praefix!");
			}
			
		}

Noch eine grundsätzliche Frage: Der Müde Joe verwendet in seinem Beispiel hartnäckig ;-) folgenden Code

Code:
Pattern.matches( pre , str2))

Die Unterlagen unseres Dozenten schreiben aber die Variante wie in meinem Code. Kannst du mir den grundsätzlichen Unterschied, wenn möglich mit eigenen Worten erklären? Was vor allem bedeutet Pattern (wieder mal eine Dok-Erklärung bei welcher ich nichts verstehe :( [/code]
 
S

SlaterB

Gast
ein Pattern ist ein Regulärer Ausruck wie x*
oder meinetwegen eine in Java vorverarbeitete Form,
oder meinetwegen auch ein Prozess, der einen solchen Ausdruck benutzt
oder sowas in der Art

irgendeine Java-Klasse muss es dazu ja geben, Pattern,

siehe dazu auch LEhrbücher, bevor hier alles wiederholt wird,
http://de.wikipedia.org/wiki/Regulärer_Ausdruck
 

belimo

Mitglied
OK, dankeschön ;-)

Ich habe jetzt noch ein weiteres kleines Problem:

Ich muss mit meinem 4. Button noch schauen können, wieviel mal stringStr1 in stringStr2 vorkommt. Nun könnte ich das ja von Hand mit Schleifen programmieren (mir graust vor dem Gedanken, das tun zu müssen), mit for-Schleifen und oben benützten Vergleichsmethoden.

Aber da gibt es doch sicherlich eine Funktion, welche das macht? Ich dachte zuerst an indexOf, scheint mir aber ziemlich kompliziert. Habt ihr mir noch einen Tipp? :roll: Danke schonmal.
 

Leroy42

Top Contributor
belimo hat gesagt.:
mir graust vor dem Gedanken, das tun zu müssen

Nun ja, wenn dir bereits vor sowas
Code:
	public int occurrencesOf(String sub, String string) {
		final int len = string.length();
		int occurrences = 0;
		for (int i=0; i < len && (i = string.indexOf(sub, i)) != -1; ++i)
			++occurrences;
		return occurrences;
	}

graust, solltest du dich vielleich mit etwas anderem
als programmieren beschäftigen. ( :bae: )
 

belimo

Mitglied
Leroy42 hat gesagt.:
graust, solltest du dich vielleich mit etwas anderem
als programmieren beschäftigen. ( :bae: )
:D Leider habe ich keine Wahl. Ich nehme Java nicht als Wahlfach, sondern es ist im ersten Studienjahr noch Pflicht :D

Aber: Ich dachte eigentlich, das sei viel mehr Code. Ich wäre selber definitiv nicht auf das gekommen - im Nachhinein verstehe ich aber immerhin den Code :wink:

Jedenfalls dankeschön für die vielen Tipps!
 
K

kgreg

Gast
Hallo leute;
import java.lang.String;
public class SimpleTitleDistance
implements DistanceMeasuringIfc
{

private double titleDistance;

public SimpleTitleDistance(){
this.titleDistance = 1;
}

public double getDistance(CFPDocument cfp1, CFPDocument cfp2){
String cfptitle1 = cfp1.getDocumentTitle();
String cfptitle2 = cfp2.getDocumentTitle();

if(cfptitle1.compareToIgnoreCase(cfptitle2) != 0){
titleDistance = 0;
}
return titleDistance;
}
}
wie kann ich equalsIgnoreCase benutzen wenn ein der beide string oder beide null ist.
Lg
Greg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Cannot find Symbol Java Basics - Anfänger-Themen 5
A Cannot find symbol mit Konstruktoren Java Basics - Anfänger-Themen 27
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
L cannot find symbol variable Kon Java Basics - Anfänger-Themen 8
F Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 5
R return: cannot find symbol Java Basics - Anfänger-Themen 2
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
S Cannot find symbol (symbol ist eine Variable) Java Basics - Anfänger-Themen 13
N Cannot find symbol Java Basics - Anfänger-Themen 18
P Cannot find symbol, wieso? Java Basics - Anfänger-Themen 5
M Erste Schritte cannot find symbol - Probleme mit Klassen Java Basics - Anfänger-Themen 6
J Error: cannot find symbol - variable Java Basics - Anfänger-Themen 3
F Erste Schritte parseint: cannot find symbol Java Basics - Anfänger-Themen 6
M Vererbung - Cannot Find Symbol constructor... Java Basics - Anfänger-Themen 11
D error: cannot find symbol Java Basics - Anfänger-Themen 3
B Frage zu Beispielprogramm: "error: cannot find symbol" Java Basics - Anfänger-Themen 2
BlueMountain Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 2
L Error: Cannot find symbol Java Basics - Anfänger-Themen 1
P Cannot find Symbol Java Basics - Anfänger-Themen 3
L Cannot Find Symbol - Was soll denn das bedeuten?!? Java Basics - Anfänger-Themen 7
P StdIn.readDouble: cannot find symbol Java Basics - Anfänger-Themen 7
B Fehler "Cannot find symbol - variable number1" Java Basics - Anfänger-Themen 13
B Compiler-Fehler cannot find symbol Java Basics - Anfänger-Themen 6
K Cannot find symbol Java Basics - Anfänger-Themen 3
H cannot find symbol Java Basics - Anfänger-Themen 4
S cannot find symbol, symbol: constructor Java Basics - Anfänger-Themen 2
3 Compiler-Fehler Fehlerbehebung cannot find Symbol Java Basics - Anfänger-Themen 4
R Compiler-Fehler Cannot find symbol (Method printIn) Java Basics - Anfänger-Themen 3
B Polymorphie A obj = new B; "cannot find symbol app()" Java Basics - Anfänger-Themen 5
S wieso Fehlermeldung cannot find symbol hier Java Basics - Anfänger-Themen 10
T Cannot find Symbol(String) Java Basics - Anfänger-Themen 9
2 Compiler-Fehler cannot find symbol Java Basics - Anfänger-Themen 13
B Erste Schritte cannot find symbol - problem Java Basics - Anfänger-Themen 9
D Cannot find symbol variable Java Basics - Anfänger-Themen 9
A Compiler-Fehler Cannot find Symbol Java Basics - Anfänger-Themen 6
V Packages: Cannot find symbol Java Basics - Anfänger-Themen 12
J Cannot find Symbol Variable mit JPanels Java Basics - Anfänger-Themen 2
L Fehlermeldung: RealMirror.java cannot find symbol Java Basics - Anfänger-Themen 2
D Cannot Find Symbol Java Basics - Anfänger-Themen 6
M Compile Time Error - cannot find symbol (Objekt!) Java Basics - Anfänger-Themen 2
L Problem mit Vererbung (extends) cannot find symbol Java Basics - Anfänger-Themen 3
S Problem beim Kompilieren - cannot find symbol - constructor() Java Basics - Anfänger-Themen 12
N cannot find symbol URL Java Basics - Anfänger-Themen 2
S Problem mit Javaeditor: Cannot find Symbol Java Basics - Anfänger-Themen 13
P cannot find Symbol - WTF? Java Basics - Anfänger-Themen 4
StupidAttack cannot find symbol Java Basics - Anfänger-Themen 16
B Cannot find symbol-Fehler Java Basics - Anfänger-Themen 3
Luk10 Cannot find Symbol Daten Java Basics - Anfänger-Themen 10
E cannot find symbol??? Java Basics - Anfänger-Themen 8
B cannot find symbol Java Basics - Anfänger-Themen 11
N cannot find symbol Java Basics - Anfänger-Themen 11
T OOP cannot find symbol Java Basics - Anfänger-Themen 4
A cannot find symbol - symbol : method Java Basics - Anfänger-Themen 5
T cannot find symbol Java Basics - Anfänger-Themen 5
I Cannot find Symbol & NullPointerException Java Basics - Anfänger-Themen 8
A cannot find symbol. Java Basics - Anfänger-Themen 5
G cannot find symbol! Java Basics - Anfänger-Themen 22
K Ständige Fehlermeldung "Cannot find symbol" Java Basics - Anfänger-Themen 2
L cannot find symbol-method Java Basics - Anfänger-Themen 3
P Error: Cannot find Symbol Java Basics - Anfänger-Themen 4
J JOptionDialog "cannot find symbol" Java Basics - Anfänger-Themen 3
P JLayer 1.0 - cannot find symbol Java Basics - Anfänger-Themen 4
M cannot find symbol. Java Basics - Anfänger-Themen 7
T ChangeListener cannot find Symbol? Java Basics - Anfänger-Themen 2
D "identifier expected" und "cannot find symbol Java Basics - Anfänger-Themen 4
S Fehlermeldung cannot find symbol Java Basics - Anfänger-Themen 8
G Cannot find symbol, Suchfunktion benutzt Java Basics - Anfänger-Themen 3
A cannot find symbol :-( Java Basics - Anfänger-Themen 2
D Cannot find JUnit.framework Java Basics - Anfänger-Themen 1
G Collections.binarySearch(LinkedList): cannot find method Java Basics - Anfänger-Themen 6
R Cannot find a free socket for the debugger Java Basics - Anfänger-Themen 6
W Cannot find symbole variable Java Basics - Anfänger-Themen 4
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
W Cannot resolve symbol 'HttpServlet' Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
jakobfritzz Array- cannot invoke "" because "" is null Java Basics - Anfänger-Themen 4
Flo :3 Variablen Type dismatch: cannot convert from string to int Java Basics - Anfänger-Themen 9
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
V ClientProtocolException cannot be resolved Java Basics - Anfänger-Themen 6
J The import org.bukkit cannot be resolved Java Basics - Anfänger-Themen 3
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
L constructor cannot be applied... Java Basics - Anfänger-Themen 22
M Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 10
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
M Iterator cannot refer to a non final... Java Basics - Anfänger-Themen 20
T Error: int cannot be dereferenced Java Basics - Anfänger-Themen 10
J JLabel cannot be resolved Java Basics - Anfänger-Themen 8
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
B OOP next cannot be resolved or is not a field Java Basics - Anfänger-Themen 6
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
D Java Eclipse cannot be cast to java.awt.event.ItemListener Java Basics - Anfänger-Themen 3
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
M Erste Schritte [Variable] cannot be resolved to a variable Java Basics - Anfänger-Themen 4
M The Selection cannot be launched... Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben