Wenn Wort gefunden ein anderes Wort davor suchen

PJF16

Grünschnabel
Hallo liebe Community,

Ich habe schon sehr viel aus diesem Forum entnehmen können und es hat mir schon sehr viel weitergeholfen bei dem ein oder anderen kleinen Programm. ;)

Jedoch habe ich jetzt ein Problem, dass sich für mich ein bisschen kompliziert darstellt. Ich führe über die Android Debugging Bridge einen Befehl aus der ein Shell Script auf dem Android Phone speichert, dieses ausführt, das Ergebnis wird auf dem Phone als Datei gespeichert und diese Datei hole ich mir per "adb pull" wieder auf den PC.

Die Datei sieht dann so aus:

Code:
Disk /dev/block/mmcblk1: 1018 MB, 1018691584 bytes
255 heads, 63 sectors/track, 123 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

              Device Boot      Start         End      Blocks  Id System
/dev/block/mmcblk1p1               1          65      522081  82 Linux swap
/dev/block/mmcblk1p2              66         123      465885   6 FAT16

Nur dass es auf dem PC in einer Zeile ist. Wenn ich sie mir per System.out.println anzeigen lasse, sieht sie so aus wie in der Codevorschau.

Nun benötige ich /dev/block/mmcblk1p1 da in dieser Zeile Linux Swap steht. Das soll dann als String gespeichert werden. Wie mache ich das am besten? Denn die Swap Partition ist nicht immer gleich mmcblk1p1.

Danke jetzt schon für eure Tipps!
 
Dein Problem ist, dass auf dem Android-Phone ein Linux werkelt, bei dem die Zeilenenden mit einem simplen \n (Linefeed) abgeschlossen werden. Windows hingegen verwendet als Zeilenende \r\n - also Carriage Return+Line Feed.

Du kannst so vorgehen: Splitte den String auf, verwende als Delimiter (Trennzeichen) das \n, dann bekommst du ein String[]. Das kannst du loopen. Dann suchst du, ob der String mit "swap" endet, schon hast du die Zeile gefunden. Das könnte so aussehen:

Java:
String[] lines = output.split("\n");

for(String line : lines)
{
  if( line.endsWith("swap") )
  {
     // Swap-Zeile gefunden
  }
}
 

Neue Beiträge

Zurück