Поиск по этому блогу

вторник, 19 мая 2015 г.

Java Core. Splitting string with pipe character (“|”)

Разделение строки на подстроки при помощи символа "|"


Как разделить строку на подстроки, если в исходной строке слова разделены с помощью символа "|".

Исходная строка
String str = "with | great | power | comes | great | responsibility";

Символ | является метасимволом в регулярных выражениях, поэтому при использовании его для как разделителя в строке нам необходимо его экранировать
String[]values = str.split("\\|");

Всего существует 4 способа разделить строку на подстроки:
1. Метод split(String regex) в классе String
String[]values = str.split("\\|");
System.out.println(Arrays.toString(values));

2. Метод Pattern.quote
values = str.split(Pattern.quote("|"));
System.out.println(Arrays.toString(values));

3. Метод Pattern.compile
values = Pattern.compile("\\|").split(str);
System.out.println(Arrays.toString(values));

4. Класс StringTokenizer
// Split using StringTokenizer class
StringTokenizer tokenizer = new StringTokenizer(str, "|");
ArrayList<String> list = new ArrayList<String>(str.length());
while(tokenizer.hasMoreTokens()) {
           list.add(tokenizer.nextToken());
}
System.out.println(list); 


Весь код


import java.util.Arrays;
import java.util.StringTokenizer;
import java.util.regex.Pattern;
 
 
public class TestA {
 
    public static void main(String[] args) {
 
 String str = "with | great | power | comes | great | responsibility";
 
 // Simple split method
 String[]values = str.split("\\|");
 System.out.println(Arrays.toString(values));
 
 // Split using Pattern.quote method
 values = str.split(Pattern.quote("|"));
 System.out.println(Arrays.toString(values));
 
 // Split using Pattern.compile method
 values = Pattern.compile("\\|").split(str);
 System.out.println(Arrays.toString(values));
 
 // Split using StringTokenizer class
 StringTokenizer tokenizer = new StringTokenizer(str, "|");
 ArrayList<String> list = new ArrayList<String>(str.length());
 while(tokenizer.hasMoreTokens()) {
            list.add(tokenizer.nextToken());
 }
 System.out.println(list); 
 
    }
 
}


Результаты



Источники


http://stackoverflow.com/questions/10796160/splitting-a-java-string-by-the-pipe-symbol-using-split

http://stackoverflow.com/questions/21524642/splitting-string-with-pipe-character

Комментариев нет:

Отправить комментарий