String equalIgnoreCase() Method

K

KarlLegola

Gast
Hallo Leute,

ich habe eine Art Lernprogramm geschrieben und dort kann man zu jedem Thema ein Quiz starten. Nun will ich, dass wenn jemand seine Antwort hinschreibt, nicht auf Groß -und Kleinschreibung achten muss sondern, dass mein Programm es trotzdem für richtig erkennt.

Ich bin auf die equalIgnoreCase() Methode gestoßen, doch ich weiß nicht, wie ich diese Methode auf mein Problem anwenden soll.

Java:
public static void main(String[] args){
		 String str1 = "A";
                 String str2 = "a";
                 boolean equals1 = str1.equalsIgnoreCase(str2);

Muss das so aussehen? Wenn ja, wie schreibe ich das so, dass mehrere Buchstaben in einem String geschrieben werden können?
 

F.S.WhiTeY

Bekanntes Mitglied
Ich würde da eher zu .toLowerCase raten und dann mit equals testen. equalsIgnoreCase macht das gleiche nur für jeden buchstaben einzelnt.

LG

David
 
G

Gast2

Gast
Java:
String str1 = "aBcDeFg";
String str2 = "ABCdefg";
boolean equals1 = str1.equalsIgnoreCase(str2);
 
K

KarlLegola

Gast
Ich würde da eher zu .toLowerCase raten und dann mit equals testen. equalsIgnoreCase macht das gleiche nur für jeden buchstaben einzelnt.

LG

David

Und wie sollte das dann aussehen? Sorry, aber bin Neueinsteiger und im Internet sind ziemlich schlechte Beispiele drinnen, die ich nicht auf mein Problem projizieren kann.
 

Timothy Truckle

Top Contributor
wenn jemand seine Antwort hinschreibt, nicht auf Groß -und Kleinschreibung achten muss sondern, dass mein Programm es trotzdem für richtig erkennt.
Richtige Antworten können aber auch andere Rechtschreibfehler enthalten oder einen anderen Satzbau haben. Willst Du das alles Berücksichtigen?

Es hat seinen Grund, dass auch die ganz Großen in diesem Geschäft nur "MultipleChoice" Tests machen. Ich glaube nicht, dass Du als Einzelkämpfer ohne Programmiererfahrung in Sachen Inhaltsanalyse den großen Durchbruch schaffen wirst.

Muss das so aussehen?
Nein.
Variablen sollen "sprechende Namen" haben. Ob die Syntax des Methodenaufrufs stimmt sagt Dir ja der Compiler...

wie schreibe ich das so, dass mehrere Buchstaben in einem String geschrieben werden können?
Deine Frage zielt darauf wie man Texte Eingeben kann? Bei Lehrern ist aktuell die Klasse [JAPI]Scanner[/JAPI] sehr beliebt.

bye
TT
 
S

SlaterB

Gast
> Und wie sollte das dann aussehen? Sorry, aber bin Neueinsteiger und im Internet sind ziemlich schlechte Beispiele drinnen

und wenn jemand sagt du sollst Bananen erst schälen vor dem Essen, brauchst du dann auch eine Anleitung im Internet?

man darf auch ruhig ein paar Minuten nachdenken, nachlesen was toLowerCase() für eine Methode ist, welchen Zweck sie normalerweise hat, Beispiele für die Methode an sich wird man auch zu hauf finden,
nicht weiter schwer festzustellen, dass du damit je einen neuen String erzeugen und die dann vergleichen kannst

wichtig ist das hier aber nicht, equalsIgnoreCase() reicht,
wichtig ist allerdings schon zu wissen was man tut, drüber nachzudenken,
es gibt keine Ausreden, jeder Handwerker-Neuling sollte beurteilen können was der Hammer in der Hand da macht,
am Anfang die Zeit nehmen, nicht zuviel auf einmal, den Hobel anderen überlassen,
aber das was man in die Hand nimmt, etwa String, dann auch kennenlernen!
 
K

KarlLegola

Gast
Richtige Antworten können aber auch andere Rechtschreibfehler enthalten oder einen anderen Satzbau haben. Willst Du das alles Berücksichtigen?

Es hat seinen Grund, dass auch die ganz Großen in diesem Geschäft nur "MultipleChoice" Tests machen. Ich glaube nicht, dass Du als Einzelkämpfer ohne Programmiererfahrung in Sachen Inhaltsanalyse den großen Durchbruch schaffen wirst.

Nein.
Variablen sollen "sprechende Namen" haben. Ob die Syntax des Methodenaufrufs stimmt sagt Dir ja der Compiler...

Deine Frage zielt darauf wie man Texte Eingeben kann? Bei Lehrern ist aktuell die Klasse [JAPI]Scanner[/JAPI] sehr beliebt.

bye
TT

Also ich habe mehrere Texteditoren, in denen die Fragen zum Quiz und die Antworten zum Quiz enthalten sind. Mein Programm liest mit dem Reader raus und dabei soll einfach nicht auf Groß- und Kleinschreibung geachtet werden.
 

Timothy Truckle

Top Contributor
Also ich habe mehrere Texteditoren, in denen die Fragen zum Quiz und die Antworten zum Quiz enthalten sind.
Sorry, aber bei jemandem, der nicht mal weis, wie Strings funktionieren kingt dies irgendwie unglaubwürdig. Es sein denn, diese Texteditoren sind "Zuarbeit" von jemand anderem...

Arbeite doch erstmal die Tutorials durch The Java™ Tutorials (und da den Anbschnitt Trails Covering the Basics) und in 2 Wochen treffen wir und wieder.

bye
TT
 
K

KarlLegola

Gast
Also, ich habe das jetzt so geschrieben, doch funktionieren will es nicht.
Java:
	public static void main(String[] args){
		  String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String lowerStr = str.toLowerCase();
	}
 
K

KarlLegola

Gast
Sorry, aber bei jemandem, der nicht mal weis, wie Strings funktionieren kingt dies irgendwie unglaubwürdig. Es sein denn, diese Texteditoren sind "Zuarbeit" von jemand anderem...

Arbeite doch erstmal die Tutorials durch The Java™ Tutorials (und da den Anbschnitt Trails Covering the Basics) und in 2 Wochen treffen wir und wieder.

bye
TT

Wieso unglaubwürdig :) ?^^
Zu Input & Output steht jede Menge im Internet. Das konnte auch ich mit Leichtigkeit bewältigen.
 

F.S.WhiTeY

Bekanntes Mitglied
dabei soll einfach nicht auf Groß- und Kleinschreibung geachtet werden.

Du hast doch deine Antworten schon.

Java:
String str1 = "aBcDeFg";
String str2 = "ABCdefg";
boolean equals1 = str1.equalsIgnoreCase(str2);

Und wenn du meine Aussage auch noch in Code brauchst:

Java:
String antwort = "blah";
String eingabe = "BlAh";

boolean status = antwort.equals(eingabe.toLowerCase());

dabei ist darauf zu achten, dass deine Antworten von vorn herein nur klein geschrieben sein sollten. wenn das nicht der fall ist kannst du das machen:


Java:
String antwort = "bLaH";
String eingabe = "BlAh";

boolean status = antwort.toLowerCase().equals(eingabe.toLowerCase());

Aber die aussage von SlaterB ist schon richtig, equalsIgnoreCase() reicht aus, ist nur unperformanter.
Warum? Das kannst du in der API-Doc nachlesen unter java.lang.String
 
K

KarlLegola

Gast
Diesen Code habe ich schon versucht zu benutzen, doch der funktioniert einfach nicht.
Java:
	public static void main(String[] args){
		 String str1 = "aBcDeFg";
     String str2 = "ABCdefg";
     boolean equals1 = str1.equalsIgnoreCase(str2);
	}
Also, ich habe schon darauf geachtet, dass meine Antworten in meiner Textdatei alleine klein geschrieben worden sind.
 
S

SlaterB

Gast
Also, ich habe das jetzt so geschrieben, doch funktionieren will es nicht.
Java:
	public static void main(String[] args){
		  String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String lowerStr = str.toLowerCase();
	}


was soll daran nicht funktionieren? eine Fehlermeldung ist kaum möglich, ein Fehlverhalten auch nicht denkbar,
es gibt keinen zweiten String, kein equals-Vergleich, keine Ausgabe?

allein die Aussage dass hier 'etwas nicht funktioniert' macht alles von deiner Seite erst komisch/ zum Fehler,
es ist jetzt unschön zuviel Mecker zu hören aber du musst dir genereller überlegen was du mit deinen Postings erzielen willst,

mehr als eine Zeile eigener Text ist oft eine gute Idee,
den gesamten Stand nochmal zusammenfassen, welches Ziel hat das Programm, welches Verhalten erwartest du vom neuen Code usw.

-----

zuvor war übrigens sicher 'mehrere Textdateien, in denen die Fragen zum Quiz und die Antworten zum Quiz enthalten sind' gemeint

--------

@F.S.WhiTeY
> Aber die aussage von SlaterB ist schon richtig, equalsIgnoreCase() reicht aus, ist nur unperformanter.

Vorsicht mit solchen Aussagen, beim ersten Mal habe ich nichts gesagt, aber das kann man ja so nicht dauerhaft stehen lassen,
es wäre ein leichtes intern in der Methode die drei Zeilen zu schreiben, stattdessen steht aber jede Menge anderer Code,

das ist nicht alles zum Spass da oder gar falsch,
zu Character einzeln andere Versionen zu holen ist keine große Arbeit, es werden keine Objekte erstellt,

zudem kann der Vergleich schon beim allerersten Zeichen beendet sein,
während toLowerCase() noch Ewigkeiten beschäftigt ist, einen MB-großen String unsinnig umzuwandeln
 
Zuletzt bearbeitet von einem Moderator:

F.S.WhiTeY

Bekanntes Mitglied
zudem kann der Vergleich schon beim allerersten Zeichen beendet sein,
während toLowerCase() noch Ewigkeiten beschäftigt ist, einen MB-großen String unsinnig umzuwandeln

Kann beim ersten zeichen zuende sein, muss aber nicht. Desweiteren testet equalsIgnoreCase gegen upper und lower case.

Das kommt auf den anwendungsfall an. Wenn alle antworten kleingeschrieben vorliegen kann toLowerCase und dann ein equals durchaus sinnig und performanter sein. Gerade weil mir zu so einem vergleich 1MB große strings noch nicht untergekommen sind. Das ist ja schon fast ein Logfile mit mehreren hundert zeilen.

Man kann sich da aber hervorragend drüber streiten, was auch google beweist wenn man ein wenig sucht.
 

ARadauer

Top Contributor
Diesen Code habe ich schon versucht zu benutzen, doch der funktioniert einfach nicht.
Java:
	public static void main(String[] args){
		 String str1 = "aBcDeFg";
     String str2 = "ABCdefg";
     boolean equals1 = str1.equalsIgnoreCase(str2);
	}

:autsch::autsch::autsch: klar funktioniert das!

Java:
public class Test {

    public static void main(String[] args) {
        String str1 = "aBcDeFg";
        String str2 = "ABCdefg";
        boolean equals1 = str1.equalsIgnoreCase(str2);
        System.out.println(equals1);
    }
}
Ausgabe: true

Wollen wir jetzt 2 Seiten drüber diskutieren ob equalsIgnoreCase funktioniert?
Poste einfach mehr code, bzw poste genau warum du denkst dass das nicht funktioniert.
 
K

KarlLegola

Gast
Java:
private void JA_ButtonActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try { 
      BufferedReader fragenauslesen= new BufferedReader(new FileReader("C:/hi/LernpageThemen/"+LoginFrame.thema+"/"+LoginFrame.unterthema+"/Fragen.txt"));
      BufferedReader antwortenauslesen= new BufferedReader(new FileReader("C:/hi/LernpageThemen/"+LoginFrame.thema+"/"+LoginFrame.unterthema+"/Antworten.txt"));
      String zeile="";
      String zeile2="";
      if((zeile=fragenauslesen.readLine()).equals("")){
        JOptionPane.showMessageDialog(null,"Die Fragen-Datei oder die Antworten-Datei ist leer\nDie Abfrage kann so nicht gestartet werden.\nWenden sie sich zur Problembehebung an Herrn Omar!");
        fragenauslesen.close();
        WirklichAbfrage.this.setVisible(false);
    
      
      }
        
      else{
        zeile2=antwortenauslesen.readLine();
        for(int i=0;i<10;i++){
          Abfrage.fragen[i]=zeile;
          Abfrage.antworten[i]=zeile2;
          zeile=fragenauslesen.readLine();
          zeile2=antwortenauslesen.readLine();
                }
        Abfrage a=new Abfrage();
        a.setVisible(true);
        this.setVisible(false);
      }
    
    
    
    
    }
    catch(Exception e){
      e.printStackTrace();
    }
    
  }

Das ist die Stelle, wo ich equalIgnoreCase verwenden muss, explizit Zeile 18-21.
 
S

SlaterB

Gast
ohne jede Erklärungen, was in den Dateien steht/ eingelesen wird, wieso hier equals benötigt wird,
was du bisher an Code eingesetzt hast, was dann an richtigen oder falschen Ergebnissen herauskommt usw.

einfach alles weggelassen was wichtig ist, außer etwas Code nun immerhin

es ist mir selber peinlich die ganze Zeit zu meckern, aber deine Mitarbeit ist unterirdisch,
überlege doch wie Postings auf andere wirken werden,
was möchtest du als Antwort haben, wie soll etwas aus deinen Postings herausgelesen werden usw.
 
A

asdfghjl

Gast
[JAVA=16] zeile2=antwortenauslesen.readLine();
for(int i=0;i<10;i++){
Abfrage.fragen=zeile;
Abfrage.antworten=zeile2;
zeile=fragenauslesen.readLine();
zeile2=antwortenauslesen.readLine();
}[/code]

Sowas ist meiner Meinung nicht nur unschön, sondern schlichtweg falsch. Auslesen einer Datei immer mittels einer while und einer Prüfung auf
Code:
null
- und auch nicht gegen feste Grenzen.

Und wie soll da
Code:
equalIgnoreCase
verwendet werden?
 

F.S.WhiTeY

Bekanntes Mitglied
[OT]
Nein, er gibt sich zufrieden wenn upperCase true ist, also sollte equalIgnoreCase praktisch immer besser sein.

Jetzt wo ich zur sicherheit noch mal nachgeschaut habe (direkt im String-Code) muss ich dahingehend recht geben. Ich hatte as anders verstanden, aus der beschreibung heraus, aber der Code ist nicht falsch zu verstehen :D

Sry an beide!
[/OT]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5
Alen123 String wiederholen mit Schleifen Java Basics - Anfänger-Themen 1
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 3
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Datentypen String in File konvertieren funktioniert nicht Java Basics - Anfänger-Themen 4
T Platzhalter in String? Java Basics - Anfänger-Themen 14
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Fats Waller Compiler-Fehler Kann ich einen String und die Summe zweier Char Werte mittels der println Anweisung ausgeben Java Basics - Anfänger-Themen 4
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H String Repräsentation eines Rechtecks mit Instanz-Methode Java Basics - Anfänger-Themen 8
Dorfschmied Kartesisches Produkt von zwei Liste mit Hashmaps<String,String> erstellen Java Basics - Anfänger-Themen 4
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
C String/Char-API Java Basics - Anfänger-Themen 13
U Char zu einem String machen Java Basics - Anfänger-Themen 1
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
M String beim einlesen formatieren Java Basics - Anfänger-Themen 12
N null in String replacen Java Basics - Anfänger-Themen 16
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
D String mit int multiplizieren? Java Basics - Anfänger-Themen 16
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
A Korrigierte <String> Liste zurückgeben Java Basics - Anfänger-Themen 22
C In String, Buchstaben ersetzen durch andere Buchstaben Java Basics - Anfänger-Themen 26
Poppigescorn String mit mehreren Wörtern füllen? Java Basics - Anfänger-Themen 4
I String Expression mit Java validieren (true / false) Java Basics - Anfänger-Themen 34
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
J Eintrag Combobox über einen String auswählen Java Basics - Anfänger-Themen 3
K mit String.splitt(",") ganzen Satz erhalten? Java Basics - Anfänger-Themen 3
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
D String und char in String speichern Java Basics - Anfänger-Themen 5
A ObservableList<String> Java Basics - Anfänger-Themen 6
I String nach Wort suchen Java Basics - Anfänger-Themen 6
I String ersetzen, der Inhalt enthält Java Basics - Anfänger-Themen 4
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben