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

  • AutoHotkey Tutorials

    AutoHotkey T

    29 Mayıs 2010
  • Keith Anthe

    Keith Anthe

    26 NİSAN 2011
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013