2016-04-11 5 views
-1

Ich muss eine Zeichenfolge unter Verwendung des Pipe-Symbols '|'Wie teilt man einen String-Wert mit dem Pipe-Symbol als Trennzeichen?

In diesem Szenario kann ich den String-Wert teilen, aber wenn ich eine "Bullet-Nummer" größer als (0-9), druckt es nur die erste Ziffer der Zahl.

Beispiel: Wenn der Eingang 11. Welcome to java programming ist, wird es drucken 1 Welcome to java programming

Dies ist mein Code so weit

public static void main(String[] args) { 

    String split_vls = "11. Welcome1. to java programming |1. Oops concepts |12. Encapsulation |3.Abstraction |14.Inheritance |5.Polymorphism"; 
    String[] Numeric_split = split_vls.split("\\|*(\\d+\\.)\\s*"); 
    for (String pipes_Split : Numeric_split) { 
     System.out.println(pipes_Split); 
    } 
} 

Dies ist die Ausgabe, die ich bekomme:

Java Programmierung Oops Konzepte Verkapselung Abstraktion
Inheritance
Polymorphe

Dies ist die erwartete Ausgabe:

Willkommen in Java-Programmierung
Oops Konzepte
Encapsulation
Abstraktion
Inheritance
Polymorphe

Antwort

3

Das Problem ist, dass Ihr Ausdruck zwischen | und . genau ein „Wortzeichen“ annimmt. Sie müssen „einen oder mehr“ ermöglichen:

String[] Numeric_split = split_vls.split("\\|*(\\w+\\.)\\s*"); 
//            ^

Demo.

+0

Sir aktualisiert, Wenn ich "" im Satz wie: 11. Willkommen. Java-Programmierung. Es wird der Satz geteilt. In diesem Szenario wird die Ausgabe "Ausgenommen" nicht erreicht. 'Willkommen zu Java-Programmierung Oops Konzepte Encapsulation Abstraktion Vererbung Polymorphismus ' –

+0

@Chola können Sie ersetzen '\\ W' mit' \\ d' zu vermeiden Buchstaben passende ([Demo] (http: // ideone .com/GbHvfJ)). – dasblinkenlight

+0

Sir, ich habe einige Änderungen an Ihrer Antwort in meiner Frage vorgenommen, wenn ich eine neue Nummer und "." Es vollständig das vorherige Wort "Willkommen" vollständig entfernen. Bitte überprüfe meine Frage. Und gib mir eine Lösung. –

0

Sie erhalten die Werte, die Sie in Ihrer Zeichenfolge haben.

Ihre String:

String split_vls = "11. Welcome to java programming |1. Oops concepts |12. Encapsulation |3.Abstraction |14.Inheritance |5.Polymorphism"; 

Try this:

StringTokenizer st= new StringTokenizer(split_vls, "|"); 
while (st.hasMoreElements()) { 
    System.out.println(st.nextToken()); 
} 

Ausgang:

11. Willkommen in Java-Programmierung
1. Oops Konzepte
12. Encapsulation
3.Abstraktion
14.Vererbung
5.Polymorphismus

oder:

String[] Numeric_split = split_vls.split("\\|*(\\w+\\.)\\s*"); 
for (String pipes_Split : Numeric_split) { 
    System.out.println(pipes_Split); 
} 

Ausgang:

Willkommen in Java-Programmierung
Oops Konzepte
Encapsulation
Abstraktion
Inheritance
Polymorphismus

+0

aber mein Erwartetes Ergebnis: Ohne jede Art von Anzahl oder Kugel vor. Willkommen in Java-Programmierung Oops Konzepte Encapsulation Abstraktion Vererbung Polymorphe –

+0

die Antwort –

Verwandte Themen