¿Cómo hacer разделяют канал por en Java? [duplicada]

Esta pregunta ya tiene una respuesta aquí:

Tengo las ​ siguientes ​ líneas ​:

valor1=cadena.split("|")[0];
valor2=cadena.split("|")[1] ;

Эмбарго греха, estoy obteniendo null, доблесть lo que quiere decir que no estoy obteniendo ningún al hacer el split.

Он intentado lo mismo pero подставляет кому:

valor1=cadena.split(",")[0];
valor2=cadena.split(",")[1] ;

Y esto sí funciona.

3
задан 07.04.2017, 06:18
5 ответов

Привет друг я рекомендую тебе это делать:

, Чтобы делать split в java используя как patr¦n separaci¦n carÃ: cter специальный ".", "$", etc†¦ мы Должны использовать carÃ: cteres утечки "\" как префикс.

Код:

String[] palabras = cadena.split("\\.");

В твоем случае был бы чем-то как это:

 valor1=cadena.split("\\|")[0];

valor2=cadena.split("\\|")[1] ;

В этом соединении поможет тебе также:

Метод Split в Java

4
ответ дан 03.12.2019, 16:00

Ты должен использовать

valor1=cadena.split("\\|")[0];

método split(String regex) использует регулярный expresi¦n, тогда ты должен убегать |, или отделяешь из-за "совсем не или совсем не".

4
ответ дан 03.12.2019, 16:00

Благодаря тому, что método split из класса java.lang.String получает, во-первых, регулярный expresi¦n, carÃ: cter | (не убегая) считается оператора чередования . 1

⠝ Без утечки

"a|b||d".split("|")["a", "|", "b", "|", "|", "d", ""]

⠝ С утечкой

Из ahà - что было необходимо убегать | с \. А именно:

"a|b||d".split("\\|")["a", "b", "", "d"]

⠝ Без l¦-mite

Тем не менее, quizÃ: s будьте mÃ: s подходящий определять l¦-mite. Например, без l¦-mite определенный:

"a|||".split("\\|")["a"]

⠝ С l¦-mite (-1)

"a|||".split("\\|", -1)["a", "", "", ""]

Замечаний

  1. Alternation with Те Вертикаль Бар or Пипе Симболь ( в inglés ).
4
ответ дан 03.12.2019, 16:00

Возможно хранить в array элементы, отделенные pipe | посредством .split (" \\| ") :

String cadena = "Mike|Irina|John|Mary|Joseph";
String[] valores = cadena.split("\\|");

или посредством .split (Pattern.quote (" | ")) :

  String[] valores = cadena.split(Pattern.quote("|"));

, чтобы получать Вашу стоимость

String valor1 = valores[0];  //valor Mike 
String valor2 = valores[1];  //valor Irina
String valor3 = valores[2];  //valor John
String valor4 = valores[3];  //valor Mary
String valor5 = valores[4];  //valor Joseph

También, ты можешь получать прямо стоимость цепи этой формы:

String valor1 = cadena.split("\\|")[0]; //valor Mike 
String valor2 = cadena.split("\\|")[1];  //valor Irina
String valor3 = cadena.split("\\|")[2];  //valor John
...

или посредством .split(Pattern.quote("|")):

 String valor1 = cadena.split(Pattern.quote("|"))[0]; //valor Mike 
 String valor2 = cadena.split(Pattern.quote("|"))[1];  //valor Irina
 String valor3 = cadena.split(Pattern.quote("|"))[2];  //valor John
 ...
 ...

В отличие от:

 String[] valores = cadena.split(",");

, который может осуществляться, не реализовывая утечки характера ",", так как это не специальный характер.

3
ответ дан 03.12.2019, 16:00
  • 1
    Это ответ, который отвечает на случай gené богатый и то, что deberí чтобы использовать как хорошая prá ctica. Pattern.quote() - несомненно opció n, чтобы использовать. – Mariano 07.04.2017, 06:12

Я ты recomendar¦ - в remplazar ты "\" из-за"," с método повторно нравься java.lang. String, quédandote немного как это:

String cadenaN = cadena.replace("\\\",",");
valor1=cadenaN.split(",")[0];
valor2=cadenaN.split(",")[1];

Или делать ему c¦mo они показывают наверху.

3
ответ дан 03.12.2019, 16:00

Теги

Похожие вопросы