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

Gast #1955617
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.
1
static public int strpos(final byte[] s, int length,
2
  int start, final byte[] pat) {
3
if (0==length) length=s.length;
4
for (int i=start; i<=length-pat.length; i++) {
5
  int j;
6
  for (j=0; j<pat.length; j++) {
7
    if (s[i+j]!=pat[j]) break;
8
  }
9
  if (pat.length==j) return i; //gefunden
10
}
11
return -1; //nicht gefunden
12
}

Wie machen das die Profis?
Gast
>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.
1
h2=request.getContentLength();
2
byte[] fs=new byte[h2];
3
int lfs;
4

5
ServletInputStream is=request.getInputStream();
6

7
lfs=0;
8
while ((h2=is.readLine(fs,lfs,fs.length-lfs))>0)
9
  {lfs+=h2;}
10
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

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.