kzen.dev
  • Întrebări
  • Tag-uri
  • Utilizatori
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 Giridharan
Giridharan
Question

Divizarea șir cu țeavă de caractere ("|")

Am'm nu putea să împartă valorile din acest șir:

"Alimentare 1 | Serviciu 3 | Atmosferă 3 | Valoare pentru bani 1 "

Aici's my actualul cod:

String rat_values = "Food 1 | Service 3 | Atmosphere 3 | Value for money 1 ";
String[] value_split = rat_values.split("|");

Ieșire

[, F, o, o, d, , 1, , |, , S, e, r, v, i, c, e, , 3, , |, , O, t, m, o, s, p, h, e, r, e, , 3, , |, , V, a, l, u, e, , f, o, r, , m, o, n, e, y, , 1, ]

Temperatura de ieșire

Alimentare 1 Serviciu 3 Atmosfera 3 Valoare pentru bani 1

212 2014-02-03T10:19:02+00:00 5
Duncan Jones
Duncan Jones
Întrebarea editată 3 februarie 2014 в 10:22
Programare
regex
java
Solution / Answer
 devnull
devnull
3 februarie 2014 в 10:20
2014-02-03T10:20:24+00:00
Mai mult
Sursă
Editează
#23567267

| este un metacharacter în regex. Te'd nevoie pentru a scăpa de ea:

String[] value_split = rat_values.split("\\|");
483
0
 Prateek
Prateek
3 februarie 2014 в 10:27
2014-02-03T10:27:27+00:00
Mai mult
Sursă
Editează
#23567271

Folosind Model.citat()

String[] value_split = rat_values.split(Pattern.quote("|"));

//System.out.println(Arrays.toString(rat_values.split(Pattern.quote("|")))); //(FOR GETTING OUTPUT)

Folosind caractere de Evacuare(pentru metacharacters)

String[] value_split = rat_values.split("\\|");
//System.out.println(Arrays.toString(rat_values.split("\\|"))); //(FOR GETTING OUTPUT)

Folosind StringTokenizer(Pentru a evita expresie regulată probleme)

public static String[] splitUsingTokenizer(String Subject, String Delimiters) 
{
     StringTokenizer StrTkn = new StringTokenizer(Subject, Delimiters);
     ArrayList<String> ArrLis = new ArrayList<String>(Subject.length());
     while(StrTkn.hasMoreTokens())
     {
       ArrLis.add(StrTkn.nextToken());
     }
     return ArrLis.toArray(new String[0]);
}

Folosind Modelul de clasă(java.util.regex.Model)

Arrays.asList(Pattern.compile("\\|").split(rat_values))
//System.out.println(Arrays.asList(Pattern.compile("\\|").split(rat_values))); //(FOR GETTING OUTPUT)

Ieșire

[Food 1 ,  Service 3 ,  Atmosphere 3 ,  Value for money 1 ]
 SudoRahul
SudoRahul
Răspuns editat 3 februarie 2014 в 10:41
73
0
 Maroun
Maroun
3 februarie 2014 в 10:21
2014-02-03T10:21:12+00:00
Mai mult
Sursă
Editează
#23567269

Sau.. Model#cita:

String[] value_split = rat_values.split(Pattern.quote("|"));

Acest lucru se întâmplă pentru că String#split acceptă o regex:

| are o semnificație specială în regex]4.

citat va returna o reprezentare Șir pentru regex.

19
0
 Anirudha
Anirudha
3 februarie 2014 в 10:20
2014-02-03T10:20:51+00:00
Mai mult
Sursă
Editează
#23567268

split are regex ca un parametru.| are o semnificație deosebită în regex.. utilizat \\| în loc de | pentru a scăpa de ea.

 Anirudha
Anirudha
Răspuns editat 27 aprilie 2016 в 4:32
8
0
 Kick
Kick
3 februarie 2014 в 10:21
2014-02-03T10:21:52+00:00
Mai mult
Sursă
Editează
#23567270
String rat_values = "Food 1 | Service 3 | Atmosphere 3 | Value for money 1 ";
    String[] value_split = rat_values.split("\\|");
    for (String string : value_split) {

        System.out.println(string);

    }
2
0
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
Utilizatori
Toate
Nou
Populare
1
Daniel Gogov
Înregistrat 6 zile în urmă
2
工藤 芳則
Înregistrat 1 săptămână în urmă
3
Ирина Беляева
Înregistrat 2 săptămâni în urmă
4
Darya Arsenyeva
Înregistrat 2 săptămâni în urmă
5
anyta nuam-nuam (LapuSiK)
Înregistrat 2 săptămâni în urmă
DE
ES
ID
JA
KO
PT
RO
RU
TR
ZH
© kzen.dev 2023
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire