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


von Ing. ET (Gast)


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.
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?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

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

von Ing. ET (Gast)


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.
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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.