Hallo Jungs und Mädels!
Mal ne Frage....Wie kann ich in einem ByteArray nach einem String suchen, der weniger Stellen besitzt, wie das Byte - Array lang ist.
Ich schreibe in meinem Programm 10 Nullen in das Byte-Array. Im nächsten Schritt schreibe ich dann meintwegen ein Wort mit nur 5 Stellen rein (an Position 0 beginnend).
Jetzt möchte ich das Wort quasi in dem Array finden bzw. vergleichen ob es überhaupt existiert. Für Wörterlängen = ByteArray Längen geht das. Aber für Wörter < Array funzt das nich, weil ja hier dann noch die Leerzeichen mit reinspielen.
Habe auch schon versucht, das Wort dann mit der nötigen Anzahl an Freizeichen oder Nullen versucht aufzufüllen. Hat aber auch nich geklappt. Vllt fehlt mir auch nur das richtig ASCII Zeichen zum auffüllen.
Oder gibts gar ne andere Möglickeit? z.B. der Zeichen für Zeichenvergleich mit RegExpr. ?
Danke
Reen
Mal ne Frage....Wie kann ich in einem ByteArray nach einem String suchen, der weniger Stellen besitzt, wie das Byte - Array lang ist.
Ich schreibe in meinem Programm 10 Nullen in das Byte-Array. Im nächsten Schritt schreibe ich dann meintwegen ein Wort mit nur 5 Stellen rein (an Position 0 beginnend).
Jetzt möchte ich das Wort quasi in dem Array finden bzw. vergleichen ob es überhaupt existiert. Für Wörterlängen = ByteArray Längen geht das. Aber für Wörter < Array funzt das nich, weil ja hier dann noch die Leerzeichen mit reinspielen.
Habe auch schon versucht, das Wort dann mit der nötigen Anzahl an Freizeichen oder Nullen versucht aufzufüllen. Hat aber auch nich geklappt. Vllt fehlt mir auch nur das richtig ASCII Zeichen zum auffüllen.
Oder gibts gar ne andere Möglickeit? z.B. der Zeichen für Zeichenvergleich mit RegExpr. ?
Danke
Reen
Code:
public class SchreibeInDatei {
public static void main (String[] args) throws IOException{
byte[] namefield = new byte[10];
int einglaenge;
String eing;
BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("Eingabe: ");
eing = eingabe.readLine();
einglaenge = eing.length();
System.out.println(einglaenge);
for (int i=0; i < namefield.length; i++)
{
namefield[i] = 0;
}
eing.getBytes(0, einglaenge, namefield, 0);
String content = new String(namefield);
System.out.println(content); // Probeausgabe
System.out.println(content.length());
String find = "test";
int len = find.length();
String sFillStrWithWantLen = " ";
for (int p=0; p<6-len; p++)
{
find += sFillStrWithWantLen;
}
System.out.println(find);
if (content.matches(find) == true)
{ System.out.println("Existiert"); }
else
{ System.out.println("Existiert NICHT"); }
System.out.println("Datei ist geschrieben!");
}
catch (IOException e) {
e.printStackTrace();
}
}
}