SORU
28 Mayıs 2010, Cuma


Dize tek boşluk ile 2 veya daha fazla boşluk değiştirmek için nasıl Java ve silin alanlarda lider sadece

Hızlı, basit bir şekilde arayan bu dize değiştirmek için Java

" hello     there   "

bir şey için bu gibi görünüyor

"hello there"

tek bir boşluk ile birden çok boşluk yerine yerler dışında ben de dize başında bir veya daha fazla boşluk gitmek istiyorum.

Böyle bir şey kısmen beni oraya alır

String mytext = " hello     there   ";
mytext = mytext.replaceAll("( ) ", " ");

ama o kadar da değil.

CEVAP
28 Mayıs 2010, Cuma


Bunu deneyin:

String after = before.trim().replaceAll("  ", " ");

Ayrıca Bkz


trim() normal ifade

Aynı zamanda sadece bir tane ama bu replaceAll, trim() çözüm çok daha az okunabilir ile bunu yapmak için. Bununla birlikte, burada sadece normal ifadenin neler yapabileceğini göstermek için verilir

    String[] tests = {
        "  x  ",          // [x]
        "  1   2   3  ",  // [1 2 3]
        "",               // []
        "   ",            // []
    };
    for (String test : tests) {
        System.out.format("[%s]%n",
            test.replaceAll("^  |  $|( ) ", "$1")
        );
    }

3 alternatifler vardır:

  • ^_ : dize başında boşluk herhangi bir dizi
    • Ve boş dize yakalar $1 ile eşleşmeyi değiştir
  • _ $ : dize sonundaki boşlukları bir dizi
    • Ve boş dize yakalar $1 ile eşleşmeyi değiştir
  • (_) : hiçbiri, ortası anlamı ile eşleşen boşluk herhangi bir dizi
    • Ve tek bir boşluk yakalar $1 ile eşleşmeyi değiştir

Ayrıca Bkz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006
  • Smith Micro Graphics

    Smith Micro

    15 Mayıs 2008