mikrocontroller.net

Forum: PC-Programmierung java: strpos()/indexOf() in Byte-Arrays?


Autor: Ing. ET (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
in Strings kann man ja mit indexOf() bequem suchen.
Aber was macht man in Byte-Arrays?
Mit PHP kann man da strpos() verwenden, aber in Java?

Es ist zwar denkbar, sich ein Funktion zu schreiben,
aber die ist wahrscheinlich nicht geschwindigkeits optimiert.
static public int strpos(final byte[] s, int length,
  int start, final byte[] pat) {
if (0==length) length=s.length;
for (int i=start; i<=length-pat.length; i++) {
  int j;
  for (j=0; j<pat.length; j++) {
    if (s[i+j]!=pat[j]) break;
  }
  if (pat.length==j) return i; //gefunden
}
return -1; //nicht gefunden
}

Wie machen das die Profis?

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bytes sind keine chars, daher macht ein "Strpos"/"indexOf" keinen Sinn.
Was willst du den damit machen sind das wirklich "bytes"?

Autor: Ing. ET (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bytes sind keine chars, daher macht ein "Strpos"/"indexOf" keinen Sinn.
Wuerde schon sagen, dass das Sinn macht. Warum sollte man nicht nach 
einem bestimmten "Zahlen-Muster" suchen duerfen?


>Was willst du den damit machen sind das wirklich "bytes"?
Siehe anderen Thread "Java-Servlet: Probleme beim File-Upload"

Ich moechte einen Post-Content nach dem Separator durchsuchen.
h2=request.getContentLength();
byte[] fs=new byte[h2];
int lfs;

ServletInputStream is=request.getInputStream();

lfs=0;
while ((h2=is.readLine(fs,lfs,fs.length-lfs))>0)
  {lfs+=h2;}
is.close(); 

Die professionellen Apache Jars (commons-fileupload-1.2.2.jar) 
funktionieren bei mir lokal wunderbar, aber auf meinem Webspace kriege 
ich sie nicht zum laufen. Also muss ich es von Hand machen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.