# Array nach mehreren bestimmten Werten durchsuchen



## christoph lindtner (13. Januar 2005)

Hallo zusammen,

ich bin Java Neuling und häng grad an einem Problem, welches mich in den Wahnsinn treibt....

Ich lese einen String ein, der einen mathematischen Operator enthalten muss... zB.: +,-,*,<,>

Die Operatoren habe ich in einem Array gespeichert => validOperators.

Weiters habe ich den String mittels toCharArray zerlegt => stringToCheck.

Wie kann ich jetzt mein stringToCheck - Array durchsuchen, ob einer von diesen Operatoren enthalten ist, sprich ich suche eine Funktion wie in php: in_array.

Ich habs probiert mit equals(); => das geht aber nicht wirklich; außerdem hab ich mir binarySearch() angesehen, das check ich aber net... mein letzter Versuch war mit: 



```
for (i=0;i<validOperators;i++)
{
        Arrays.asList(stringToCheck).contains(validOperators[i]);
}
```

Das geht aber auch net wirklich... 

Danke schon mal im Voraus....

Christoph


----------



## Phoenixxxxx (13. Januar 2005)

Hey Christoph

Ich würde das anders machen: Du lässt den String, wie er ist und verwendest die Funktion indexOf(), welche dir die Position eines bestimmten Zeichens liefert. Du könntest das also so machen:


```
boolean vorhanden = false;

for(int i=0; i<validOperators.length; i++)
{
  if(stringToCheck.indexOf(validOperators[i])>-1)
  {
    vorhanden = true;
  }
}
```

Die Methode indexOf() liefert dir die Position eines bestimmten Zeichens zurück; wenn das Zeichen nicht vorhanden ist, ist der Rückgabewert -1. Wenn du also nur wissen musst, ob eines dieser Zeichen vorkommt, kannst du das mit obigem Code tun. Ich hoffe, das hilft dir weiter...

lg, Phoenix


----------



## christoph lindtner (13. Januar 2005)

Hallo Phoenix,

es hat wunderbar funktioniert... Vielen Dank jetzt kann ich endlich weiter programmieren.... thx a lot....

lg
christoph


----------



## christoph lindtner (14. Januar 2005)

Ich hab noch eine Frage....

Wie kann ich mit den Math - Methoden in Java Polynome multiplizieren......

zB.:


```
3 + 2x - 4x^2 + x^3 * -1 + x + 3x^2
```

Mir fehlt irgendwie der Plan...

danke schon mal im voraus

christoph


----------



## teppi (14. Januar 2005)

Meinst du das ? 

```
public class Rechnen {

	public Rechnen (int x){
		// 3 + 2x - 4x^2 + x^3 * -1 + x + 3x^2
		System.out.println(3 + 2 * x - 4 * Math.pow(x,2) + Math.pow(x,3) * -1 + x + 3 * Math.pow(x,2));
	}
		
	public static void main(String[] args){
		Rechnen blub = new Rechnen(3); 	
	}
}
```

PS: Für 3 kommt da -24 raus ..


----------



## christoph lindtner (14. Januar 2005)

Hallo teppi,

Danke für die schnelle Antwort... So in etwa hab ichs gemeint.... nur soll ich bei dem Term die Basis nicht durch eine Zahl ersetzen... sondern die Basis soll x bleiben....

ein Beispiel:


```
Bei dieser Eingabe:
3 + x - 4x^2 + 2x^3 * -1 + 2x + x^2

soll die Ausgabe rauskommen:
-3 + 5x + 9x^2 - 9x^3 + 2x^5
```

@Eingabe: Ich lese nur die Kooeffizienten ein. Beide Terme und die dazugehörige Hochzahl (rechnet das Programm aus) werden in den Arrays firstpolynom und secondpolynom gespeichert. Die Arrays sind vom Typ short (> is eine Vorgabe)

Hat jemand vielleicht eine Idee?

christoph


----------

