Мне нужно Split String в Java? - PullRequest
0 голосов
/ 07 июня 2018

У меня есть строка типа String str = "Abhishek Patel(123121)"; Nd. Я хочу разделить строку на две части.

String Name = "Abhishek Patel"; 
String ID = 123121;

Я пробовал вот так в java

String str = "Abhishek Patel(123121)";

    String a[] = str.split("(");
    String Name =a[0];

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Вы можете использовать комбинацию split и подстроки

    String name = "Abhishek Patel(1234567)"; 
    String[] parts = name.split("\\(");
    System.out.println(parts[0]);
    System.out.println(parts[1].substring(0, parts[1].length() -1));

Как правильно указал @JoakimDanielson, если последний ) является необязательным, то, возможно, лучше использовать замену, а не подстроку

System.out.println(parts[1].replace(")", ""));
0 голосов
/ 07 июня 2018

Воспользуйтесь двумя фактами.

  1. Метод split по умолчанию отбрасывает все пустые строки, которые появляются после совпадений.
  2. Вам не нужно бежать ( или ), если они появляются в [] символах в регулярном выражении.

Так что вы можете просто написать это.

String toSplit = "Abishek Patel(12345)";
String[] parts = toSplit.split("[()]");

Это дает массив толькодва элемента, а не три, и они являются именем и идентификатором.

0 голосов
/ 07 июня 2018

Попробуй это.поможет вам

    String str = "Abhishek Patel(123121)";

    String a[] = str.replace("(", "  ").replace(")", "  ").split("  ");
    String Name =a[0];
    String id =a[1];
    System.out.println(Name);
    System.out.println(id);

РЕДАКТИРОВАТЬ -------------

, как предположил Страшный Вомбат, что в названии может быть 2 пробела.Вы можете изменить это на что-то другое.Основная идея заключалась в том, чтобы удалить ненужных и ограниченных символов одним общим и затем разделить.

Спасибо @ ScaryWombat.

...