Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich ahbe zur zeit ein kleines Problem was ihr bestimmt schnell lösen könnt.
Ich abe eine TXT Date in der ein Text steht. Nun möchte ich die Postionen der Leerzeichen immer wieder in einen INT Array abspeichern.
Ein Kleines bsp.:
Text = "Hallo das ist ein Test"
So nun sollte man im array a[1] die nummer 5 stehen na zweiter Stelle die 9 u.s.w.
Bei mir ist das Problem das er bei mir in jeden Array Platz eine 5 reinschreibt ist auch Logisch weil er immer wider von anfang des Textes anfängt zu lesen. Und dadurch alle array Plätze mit der 5 belegt.
Meine Frage ist es wie ich es hinbekomme das er den Gesamten Text durchliesst und dann immer die Postionen der Leerzeichen in einen array schreibt ?
So weit bin ich schonmal
Code:
String g1 = "";
g1 = gesamtText;
//zählen der Leerzeichen
for(int i = 0; i <= 8; i++) {
a1[i] = g1.indexOf(" ");
}
public class Test {
public static void main(String[] args) {
String satz = "Blup foo bar";
for (int i = 0; i < satz.lastIndexOf(" ");) {
i = satz.indexOf(" ", i + 1);
System.out.println(i);
}
}
}
public class Test {
public static void main(String[] args) {
String satz = "Blup foo bar";
int[] array = new int[satz.split(" ").length];
for (int i = 0, j = 0; i < satz.lastIndexOf(" ");) {
i = satz.indexOf(" ", i + 1);
array[j] = i;
System.out.println(i);
}
}
}
Ich würde hier aber kein Array sondern ne Collection verwenden, da du beim Array die Größe vorher bestimmen musst.
String g1 = "Hallo das ist ein Test";
int[] a1 = new int[g1.length()];
int x = 0;
for(int i = 0, j = g1.length(); i < j; i++) {
if(g1.charAt(i) == ' ')
a1[x++] = i;
}
nur dass du damit natürlich einen zu großen array initialisierst....
andere möglichkeit.
per split nach leerzeichen trennen. GRöße des enstehenden Arrays gibt die Anzahl der Leerzeichen im Text an (bzw. length -1) - dann den array durchlaufen und jeweils die länge der elemente aufaddieren -> ergibt die positionen der leerzeichen
String g1 = "Hallo das ist ein Test";
int[] a1 = new int[g1.length()];
int x = 0;
for(int i = 0, j = g1.length(); i < j; i++) {
if(g1.charAt(i) == ' ') {
a1[x++] = i; // hier ist eine zeile gespart :D
}
}
String g1 = "Hallo das ist ein Test";
int[] a1 = new int[g1.length()];
int x = 0;
for(int i = 0, j = g1.length(); i < j; i++) {
if(g1.charAt(i) == ' ')
a1[x++] = i;
}
OK, dann verbessere ich mal... Wenn's ein Array sein muss:
Code:
String g1 = "Hallo das ist ein Text";
int[] a1 = new int[g1.split(" ").length-1];
int x = 0;
for(int i = 0; i < g1.length(); i++) {
if(g1.charAt(i) == ' ')
a1[x++] = i;
}
Ansonsten wie oben erwähnt eine Liste (ArrayList/Vecor).