Разделение строки на подстроки при помощи символа "|"
Как разделить строку на подстроки, если в исходной строке слова разделены с помощью символа "|".
Исходная строка
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
Комментариев нет:
Отправить комментарий