Leerzeichen rausfinden

Status
Nicht offen für weitere Antworten.

Cinimod

Aktives Mitglied
Hallo!

Angenommen, ein Satz ist gegeben. Jetzt möchte ich die Anzahl der Leerzeichen zwischen zwei (aufeinanderfolgenden) Wörtern feststellen.

Jemand eine Idee, wie man das am einfachsten machen könnte ???:L

Für Hilfe, vielen Dank im voraus!

------------------------------------------
visit: www.dominic.greengecko.org
JGuiHelper 1.2, zum einfachen Erstellen eines Layouts, zum Download bereit :wink:
 
falls java 1.4 vorausgesetzt werden kann:

Code:
String satz = "Das ist ein Test den ich machen will";
String[] teile = satz.split("\\w\\s+\\w");
int numberOfSpaces = teile.length-1;

Damit findest du die Anzahl der Leerzeichen (es können mehrere sein, mind. einer) zwischen zwei Worten...
 
Danke für die Antwort...aber

Code:
String satz = "Das ist ein Test den    ich machen      will";

Ich möchte jetzt die Anzahl der Leerzeichen zwischen "den" und "ich" herausfinden.

Nach der obenen beschriebenen Methode wäre das ein einziges Leerzeichen, oder? Richtig wäre hingegen vier.

Ich brauche diese Anzahl, damit ich den Satz, so wie er steht, wieder zusammenbasteln kann - also
mit der entsprechenden Anzahl an Leerzeichen zwischen den Wörtern.

Weiterhin Danke für Hilfe im voraus!

--------------------------------------
visit: www.dominic.greengecko.org
JGuiHelper 1.2, zum einfachen Erstellen eines Layouts, zum Download bereit :wink:
 
dann fällt mir erstmal nur das ein:
Code:
String s = "Das ist ein Test     und ich will";
char[] a = s.toCharArray();
int n = 0;
for (int i = 0; i < a.length; i++) {
    if (Character.isLetterOrDigit(a[i])) {
        n++;
    }
}
System.out.println("spaces " + (a.length - n));

Wobei du dann halt nur weißt, wieviele Spaces es gibt, nicht wo die sind ???!!!

PS: Scheinabr willst du irgendwas mit den Satzteilen mache sonst würdest du sie ja nicht auseinanderlegen wollen, Warum eigentlich nicht einfach den Ursprungssatz speichern - dann ersparst du dir das mühsame Zusammenbauen. Zerlegen kannst du ihn ja dennoch und dann mit dem zerlegten tun was du willst....
 
hast gerade geantwortet - als ich meinen beitrag editierte - siehe mal da nach 🙂
 
Hi,

wenn du die Position und die Anzahl brauchst, kannst du doch
soetwas machen.

Code:
public class LeerzeichenTest {
  public static void main(String[] args) {
    String satz = "Das ist ein Test den    ich machen      will";
    
    java.util.Vector whitespacePos = new java.util.Vector();
    
    boolean countWhitespaces = false;
    int count = 0;
    int beginn = 0;
    
    for (int i = 0; i < satz.length(); i++) {
      boolean isLetterOrDigit = Character.isLetterOrDigit(satz.charAt(i));
      if(isLetterOrDigit &&  countWhitespaces){
        countWhitespaces = false;
        whitespacePos.add(new WhitespacePosition(beginn, count));
      }
      if(!isLetterOrDigit &&  !countWhitespaces){
        countWhitespaces = true;
        count = 0;
        beginn = i;
      }
    
      if(countWhitespaces)
        count++;
    }
    
    // Ausgabe der ermittelten Werte
    for (int i = 0; i < whitespacePos.size(); i++) {
      WhitespacePosition pos = (WhitespacePosition) whitespacePos.elementAt(i);
      System.out.println(i + 
                         ": beginn " + 
                         pos.getBeginnIndex() +
                         "  count " +
                         pos.getWhitespaceCount()
          );
    }
    
  }

}


class WhitespacePosition {
  private int beginnIndex;
  private int whitespaceCount;
  
  public WhitespacePosition(int beginnIndex, int count){
    this.beginnIndex = beginnIndex;
    this.whitespaceCount = count;
  }
  
  public int getBeginnIndex(){
    return this.beginnIndex;
  }
  
  public int getWhitespaceCount(){
    return this.whitespaceCount;
  }
}

Kopier, kompilier es und lass es laufen. Vielleicht ist es das was du wolltest.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben