Array mit String vergleichen

Status
Nicht offen für weitere Antworten.

zero11

Mitglied
Hallo zusammen!

Ich habe folgendes Problem:

Ich habe ein neues Array erstellt in dem Namen abgelegt werden
Code:
String namen[] = {"Hans", "Peter", "Klaus"};

Diese Namen werden dann in eine Liste eingefügt mit:

Code:
for (int zaehler = 0; zaehler < namen.length; zaehler++) 
        {
            list.add(""+(namen[zaehler]));
        }

bis hierhin klappt auch alles wunderbar...mit einem Klick auf einen Button wird der ausgewählte Name aus der Liste in ein Textfeld übergeben.

Jetzt möchte ich überprüfen-> Wenn ein bestimmtes Zeichen in dem Namen vorkommt, soll dieser Name in ein anderes Textfeld übergeben werden..nur da komm ich irgendwie net weiter...sry...bin noch Anfänger;(

evtl. mit ner for-Schleife und ner if-Abfrage ???...ich weiß nur nicht wie...

Vielen Dank im Voraus
 

diggaa1984

Top Contributor
da gibt es einige Möglichkeiten.
das ganze geschieht dann noch in der bereits vorhandenen for-schleife

Möglichkeiten: contains-Methode, indexOf-Methoden ... eventuell noch mehr
(siehe: String-API)

Code:
for (int zaehler = 0; zaehler < namen.length; zaehler++) {
    if (namen[zaehler].indexOf(<was auch immer>) >= 0) {
        //<was auch immer> ist enthalten
    } else {
        //<was auch immer> ist nicht enthalten
    }
}

wäre eine Möglichkeit
 

0x7F800000

Top Contributor
Code:
String.indexOf(char c)
liefert etwas negatives, wenn das zeichen nicht gefunden wird. Ansonsten die Position.
 

zero11

Mitglied
Hey!

Erstmal vielen Dank für eure schnellen Antworten!!! :toll:

Ich hab´s jetzt nen bisschen anders gelöst, aber es funktioniert;)
Im Textfeld1 sind die Namen aus der Liste enthalten und sie werden in das Textfeld2 übergeben, nur wenn sie in der namen.length enthalten sind...

Code:
for (int zaehler = 0; zaehler < namen.length; zaehler++) 
	    { 
            if (namen[zaehler].equalsIgnoreCase(textfeld1.getText()) ) 
            {
                textfeld2.setText(""+textfeld1.getText());
            }
        }

jetzt hab ich die Namen, die ins das Textfeld "reindürfen" ja auch drin...aber ich habe jetzt noch ein weiteres Textfeld mit Beträgen z.B. wieviel diese Person im Monat verdient...dieser Wert wird dann auch eingelesen aus nem Textfeld und an den Namen angehängt...is ja auch net so schwer...
Code:
textfeld2.setText(""+textfeld1.getText()+textfeld3.getText());

Ich würde jetzt gerne den Namen in dem Textfeld(bzw. ich werde die Namen wahrscheinlich in einer Liste ausgeben lassen) stehenlassen, aber nur die Beträge für die jeweilige Person immer wieder aufsummieren...also das nur die Summen in der Liste sich ändern, aber nicht die Namen?

Vielen Dank für eure Mühen im Voraus!
 
B

Beni

Gast
Mal eine Frage, wieso machst du das hier?
Code:
""+textfeld1.getText()
?

"getText" gibt schon einen String zurück, den muss man doch nicht mehr umwandeln. Und da ein String immutable ist, besteht auch keine Gefahr dass er irgendwie von aussen verändert wird.

Also das sollte reichen:
Code:
textfeld1.getText()
 

zero11

Mitglied
ja ich weiß...sry...ich hab´s mir leider so angewöhnt, da ich anfangs, wenn ich was in eine Liste schreiben wollte, z.B. list.add(""+irgendwas)...geschrieben habe...und bei den Textfeldern mach ich´s komischerweise auch...ist zwar überflüssig, aber na ja;)...danke für den Hinweis =)
 

zero11

Mitglied
Also ich beschreib nochmal das Problem nen bisschen detaillierter:

Wie oben schon beschrieben hab ich eine Liste, in der die Namen importiert werden. Ich hab´s jetzt mit ner ArrayList gemacht.

Code:
ArrayList namen = new ArrayList();
namen.add("Hans");
namen.add("Peter");

Jeder dieser Elemente hat ja einen Index; In diesem Fall hat Hans den Index 0, Peter den Index 1, usw.

Jetzt wird ein Name aus der Liste ausgewählt und in ein Textfeld übergeben.

Code:
textfeld.setText(list.getSelectedItem());

Im nächsten Schritt wird verglichen, ob der Name im textfeld in der ArrayList "namen" enthalten ist (ich hab nämlich noch 3 weitere ArrayList) und in eine andere List übergeben (List2)

Code:
for(int i=0; i < (namen.size()-1); i++)
        {
            if(namen.get(i).equals(textfeld.getText()))
		    {
		    list2.add(textfeld.getText());
		    }
        }

Jeder der Namen in der ArrayList soll aber noch eine bestimmte Summe zugeordnet werden. Z.B. Lohn/Gehalt ; also einen Integer oder double-Wert.
Wie bekomme ich es jetzt hin, dass wenn z.B. Peter in der Liste steht mit der Summe 0, und ich jetzt Peter nochmal auswähle und in die Liste mit einem Betrag von z.B. 1000 € hinzufüge.

Es soll aber nur der Betrag ersetzt werden (von 0 auf 1000). Jeder Name hätte dann ja noch nen Index mit der entsprechenden Summe.

Mehrdimensionale Arrays kommen hier ja leider nicht in Frage, weil ich 2 verschiedene Datentypen (int, String) habe. Gibt es ne Möglichkeit, den entsprechenden Namen einen weiteren Index zuzuweisen (int summe) und dieses dann immer wieder zu aktualisieren ?

Vielen Dank im Voraus
 
S

SlaterB

Gast
speichere in der Liste keine Strings sondern Objekte vom Typ GehaltsMensch (oder schöner benannt)
mit Name und Gehalt

vielleicht ist auch eine Map<String,Integer> was für dich
 

zero11

Mitglied
Hey, danke für die schnelle Antwort!

Könntest du mir evtl. nochmal nen Tipp für die Map geben...wie die aussehen könnte? Die Idee ist gut, aber ich hab bisher noch nie mit Maps gearbeitet :(

Danke im Voraus
 

xysawq

Bekanntes Mitglied
Code:
Map<String,Integer> map = new HashMap<String,Integer>;

map.put("Hans", 1000);

-> map.get("Hans") == 1000

map.get("Hans") = 2000;

-> map.get("Hans") == 2000
 

zero11

Mitglied
Hey

Ich hab´s jetzt mit ner HashMap probiert:

Code:
HashMap<String, Integer> map = new HashMap<String, Integer>();
map.put("Werner", 500);
map.put("Max", 1200);
map.put("Lisa", 700);

Wenn ich das Programm jetzt compiliere, dann sagt er mir "not a statement" und markert mir das Komma zwischen String und Integer an... :(

import java.util.*; hab ich oben mit angegeben...

Diesen Fehler macht er aber nur bei VisualCafe...bei Netbeans läufts ohne Probleme ...hm.. komisch?
 
G

Guest

Gast
Dein VisualCafe ist vermutlich schon sehr kalt. ;)
Unterstützt keine Generics, die erst mit JDK 1.5 eingeführt wurden.
 

zero11

Mitglied
Hey
ja...das könnte durchaus sein...ist glaub ich V4 oder so...die ist schon nen Tag älter...

hm...das ist ja nicht so toll :(

würde das Bsp. von SlaterB denn auch net funktionieren?
weil es müsste doch auch heißen:
Code:
ArrayList<Object> gehaltsmensch = new ArrayList<Object>();

oder wie schaut das aus?

Danke im Voraus
 

zero11

Mitglied
Hey zusammen!

Ich hab´s jetzt folgendermaßen gemacht:

Die ArrayList bze. HashMap hab ich jetzt weggelassen und ne Klasse "Person" erstellt

Code:
public class Person
{
String name;
double summe = 0.0;
}

...dann:
Code:
Person Hans = new Person();
Hans.name = "Hans";
...usw...

Wie kann ich jetzt vergleichen, ob im TextfeldXY dieser Name auch in der Klasse vorkommt?

Wenn ich es mit "equals" oder "compareTo" usw. versuche, kommt immer die Fehlermeldung: "cannot resolve Symbol: variable Person in class Frame1"...obwohl die Klasse im Projekt drin ist und
Code:
Person Hans = new Person();
global deklariert ist...

Ich hoffe ihr seit nochmal gnädig und könnt mir nochmal nen Tipp geben :)

...danke im Voraus!
 
S

SlaterB

Gast
poste (mehr) Code, komplette Klasse Frame1, nicht relevante Methoden kannst du ja auf
public x y(z) {
...
}
kürzen
 

zero11

Mitglied
Code:
import java.io.*;
import java.util.*;
import java.text.*;
import javax.swing.*;
import java.awt.*;


public class Frame1 extends Frame
{
    long z = 0, z2=0; // nur für Zeitberechnung
    double b=0.0;
    double a=0.0;
    
    
    Person Hans = new Person(); 
    Person Peter = new Person();
    Person Dieter = new Person();
    Person Walter = new Person();
so siehts ganz oben aus...also die globalen Variablen usw....der Rest darunter sind nur die ganzen Komponenten wie Labels, etc. und ihre Größen,etc.


und hier der Code für den Button:

Code:
void button1_ActionPerformed(java.awt.event.ActionEvent event)
	{
		// to do: code goes here.
		try
    {
        SimpleDateFormat df = new SimpleDateFormat( "dd-MM-yyyy" );
        SimpleDateFormat df2 = new SimpleDateFormat("HH:mm:ss");
        Date dt = new Date();
        z = dt.getTime();
        z2 = dt.getTime();
        String name = tf_name.getText();
        String bez = tf_klasse.getText();
        FileWriter fw = new FileWriter( "test.txt" );
        fw.write("Date: "+df.format(dt)+"\r\n");
        fw.write("Time: "+df2.format(dt)+"\r\n");
        fw.write( name+"\r\n"+bez+"\r\n" );
        fw.close();
        } catch ( IOException e ) 
         {
            System.out.println( "Konnte Datei nicht erstellen!" );
         }
}

Hans.name = "Hans";
Peter.name = "Peter";
Dieter.name = "Dieter";
Walter.name = "Walter";

}

Hier noch die Klasse:
Code:
public class Person
{
    String name;
    double summe = 0.0; 
}

So ... und wenn ich jetzt z.B. eingebe:
Code:
if (textfeldAB.getText().equals(Person))
{
irgendwas;
}

wirft er mir den Fehler aus, dass er die variable "Person" nicht finden kann

Normalerweise erhalte ich z.B. bei Eingabe textfeld.setText("blabla") nach dem "." einige Auswahlmöglichkeiten, was ich jetzt z.B. wählen möchte ; setText, getText usw.

Wenn ich jetzt z.B. Hans. eingebe, erhalte ich auch die Auswahlmöglichkeiten wie z.B. name, summe, equals, usw...hm...

Ich denk mal das es ganz simpel ist, aber ich finde es nicht :(
 
S

SlaterB

Gast
Person ist ja auch gar kein Variablenname sondern die Klasse selber
(das hätte man auch schon vorhin sehen können, ok ;) )


Code wie
"Hallo".equals(String);
funktioniert ja auch nicht,
was soll der denn bewirken?
 

zero11

Mitglied
es soll nachgeschaut werden, ob dieser Name zu dieser Klasse gehört. Wenn ja, dann wird er in eine AWT-List eingetragen, wenn nicht dann nicht. Ich werde die Klasse sicherlich noch aufteilen in "Mann" und "Frau" anstatt nur "Person".
 

zero11

Mitglied
Hey!

Also ich hab mich jetzt mal von VisualCafe getrennt :) und bin auf netbeans umgestiegen! Echt genial!
Hier klappt´s auch wunderbar mit der HashMap!...
Aber ihr wisst ja sicherlich was jetzt kommt :)

Mein Anliegen:

Code:
HashMap<String, Double> Person = new HashMap<String, Double>();

Hab die Map jetzt nen bisschen gefüllt und in ner JList ausgegeben.

Code:
for( String blabla : Person.keySet())
        {
            jlist.add(blabla);
        }

Hab jetzt noch ne JTable angelegt mit 2 Spalten ("Person","Gehalt")

Kann mir jemand sagen, wie ich die HashMap in die JTable bekomme?

Das wär auch mein letztes Anliegen zu diesem Thema...ich glaub danach bin ich soweit fertig und werde nicht weiter nerven :)

Danke im Voraus!
 

André Uhres

Top Contributor
zero11 hat gesagt.:
Kann mir jemand sagen, wie ich die HashMap in die JTable bekomme?
Zum Beispiel mit AbstractTableModel:
Code:
public class Test extends JFrame {
    HashMap<String, Double> person = new HashMap<String, Double>();
    public Test() {
...
        add(new JScrollPane(new JTable(new MyTableModel())));
    }
...
    class MyTableModel extends AbstractTableModel {
        public int getRowCount() {
            return person.size();
        }
        public int getColumnCount() {
            return 2;
        }
        public Object getValueAt(int rowIndex, int columnIndex) {
            Iterator<String> it = person.keySet().iterator();
            for (int row = 0; row < rowIndex; row++){
                it.next();
            }
            if(columnIndex == 0){
                return it.next();
            }else{
                return person.get(it.next());
            }
        }
    }
}
 

zero11

Mitglied
Hey André...danke für die schnelle Antwort!!

Ich hab´s jetzt genau so übernommen...> keine Fehler :wink:

Aber irgendwie zeigt er mir nix an in der Tabelle :( ...hmm
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Input/Output 6000 Zeilen einlesen und String-Array vergleichen? Java Basics - Anfänger-Themen 1
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
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
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
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
P Datentypen Array und String Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
Curtis_MC 2dimensionales Array als String ausgeben Java Basics - Anfänger-Themen 2
I char Array to String Java Basics - Anfänger-Themen 3
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
E Array to String Method Reverse Java Basics - Anfänger-Themen 5
Mosquera Get String Array - ComboBox Java Basics - Anfänger-Themen 10
P Strings in String Array schreiben Java Basics - Anfänger-Themen 13
V zweidimensionale String Array Java Basics - Anfänger-Themen 1
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
M Array nach String durchsuchen und zurückgeben Java Basics - Anfänger-Themen 16
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
C Methoden String in char Array Java Basics - Anfänger-Themen 3
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
L Prüfe, ob die im String Array enthaltenen Strings aufsteigend sind. Java Basics - Anfänger-Themen 19
N String array to String Java Basics - Anfänger-Themen 6
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
B String in Array speichern Java Basics - Anfänger-Themen 4
L String zu String Array Java Basics - Anfänger-Themen 2
D Input/Output Array in einem String mit einem Trennzeichen verbinden Java Basics - Anfänger-Themen 17
D String-Array Java Basics - Anfänger-Themen 3
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
K String in String-Array suchen Java Basics - Anfänger-Themen 11
K String Array basierend auf int Array füllen Java Basics - Anfänger-Themen 2
K Im String Array suchen Java Basics - Anfänger-Themen 8
D Elements[] string = document.getElementsByClass("betEvent"); als Array Java Basics - Anfänger-Themen 1
C Array in String umwandeln Java Basics - Anfänger-Themen 5
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
M String Array mischen Java Basics - Anfänger-Themen 3
F Methoden Kontaktliste - String in einem Array suchen und ausgeben Java Basics - Anfänger-Themen 3
K String zu int Array Java Basics - Anfänger-Themen 3
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
W Array in String und String in Array - falsche Ausgaben Java Basics - Anfänger-Themen 20
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
W Array nach String durchsuchen und Ausgeben Java Basics - Anfänger-Themen 8
B Binäre Suche in einem String Array Java Basics - Anfänger-Themen 10
K String in String-Array finden Java Basics - Anfänger-Themen 7
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
J 2 String Arrays in neuem String Array verbinden Java Basics - Anfänger-Themen 4
S String zu quadratischen Array Java Basics - Anfänger-Themen 3
T Array mit String, Zahlen in If Saetze packen Java Basics - Anfänger-Themen 3
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
S ArrayDeque zu String Array Java Basics - Anfänger-Themen 2
A Variablen String Array in einzelne Strings auspalten Java Basics - Anfänger-Themen 4
fLooojava String zu Array Java Basics - Anfänger-Themen 5
J array in String umwandeln Java Basics - Anfänger-Themen 1
J array in String umwandeln Java Basics - Anfänger-Themen 3
E Erste Schritte Array soll kleiner werdenden String erstellen Java Basics - Anfänger-Themen 5
D String-Array aus Tastatureingabe Java Basics - Anfänger-Themen 4
A Mehrdimensionalles Array in String ausgeben in Liste Java Basics - Anfänger-Themen 5
L String array mit split füllen Java Basics - Anfänger-Themen 14
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
A private string array Java Basics - Anfänger-Themen 5
W String / Int-Array Java Basics - Anfänger-Themen 13
C Doppelte Einträge aus String [] Array entfernen. Java Basics - Anfänger-Themen 5
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
B Werte über Scanner in ein 3 dim String Array schreiben Java Basics - Anfänger-Themen 7
T String in Array suchen Java Basics - Anfänger-Themen 9
G String einem String Array übergeben Java Basics - Anfänger-Themen 3
G String to Array Java Basics - Anfänger-Themen 2
P CSV Datei in String Array -> Split -> New Array Java Basics - Anfänger-Themen 2
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
F Variablen String-Array wird ungewollt "überschreiben" Java Basics - Anfänger-Themen 7
J Zeichen aus String Array lesen Java Basics - Anfänger-Themen 13
S Länge eines Elements im String Array Java Basics - Anfänger-Themen 5
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
C Datentypen Zweidimensionales Array mit String und int Java Basics - Anfänger-Themen 3
J Array zu String Java Basics - Anfänger-Themen 13
B String Array in main() Java Basics - Anfänger-Themen 2
G String Array konvertieren in Integer Array? Java Basics - Anfänger-Themen 7
Junb String in Array speichern Java Basics - Anfänger-Themen 4
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5
P String Sortieren in einem Array Java Basics - Anfänger-Themen 7
W String & Integer im Array Java Basics - Anfänger-Themen 7
C Datentypen int array in String ausgeben Java Basics - Anfänger-Themen 20

Ähnliche Java Themen

Neue Themen


Oben