Возможные Дублировать:
Cutting/splitting strings with JavaРазбиение строки с Java
У меня есть строка, например:
C: 16896208896
Как я могу получить следующий вывод:
16896208896
Возможные Дублировать:
Cutting/splitting strings with JavaРазбиение строки с Java
У меня есть строка, например:
C: 16896208896
Как я могу получить следующий вывод:
16896208896
String[] expl = rawString.split(":");
System.out.print(expl[1].trim());
substring(10)
Чтобы дать более полный ответ, нам нужно было бы больше информации об изменчивости строки.
Этот подход нецелесообразен, поскольку «подстрока» строки имеет тот же размер, что и исходная строка. проверьте поле строки 'значение'. проверьте мои ответы на общий подход – MozenRath
Ваш ответ может использовать меньше памяти, но определенно менее эффективен с точки зрения времени обработки, а также менее прямой. Предположим, что если точное начальное положение номера неизвестно, потребуется раскол. –
Да, я понял. Вот почему я сказал, что это общий подход. использование подстроки - это своего рода хард-код здесь – MozenRath
myStr.split(" ")[1]
где myStr = "C: sdg55253522355345"
str.split(":")[1].trim()
Самый простой способ, при условии, всегда есть десять символов перед номером начинается бы
System.out.println(theString.substring(10));
Если количество символов меняется, то что-то вроде
System.out.println(theString.split(" ")[1]);
будет работать.
'System.out.println (theString.split (" ") [1]);' будет возвращать пустое пространство. Если количество символов меняется, мы не можем использовать что-то вроде 'System.out.println (theString.split (": ") [1] .trim());' ..? – Mudassir
Это избавляется от произвольных нечисловых символов до и после любого числа в любой строке, при условии, что существует только один номер в строке
"C: 16896208896 ".replaceAll("^\\D*(\\d+)\\D*$", "$1");
Pattern pattern = Pattern.compile("\s*(\d+)");
Matcher matcher = pattern.matcher(myString);
matcher.find();
String result = matcher.group(1);
Используйте регулярные выражения, чтобы найти то, что вы хотеть. Это лучший способ решить вашу проблему, если вы не знаете, сколько пробелов перед номером.
попробуйте это.
yourString.split("\\s+")[1];
На самом деле это 'yourString.split (" \\ s + ") [1];'. – Mudassir
String str = "C: 16896208896"
str.split(" ")[1];
или
String str = "C: 16896208896"
str.substring(10);
или использовать регулярное выражение, чтобы отфильтровать то, что вы хотите.
Самое простое решение зависит от строковой структуры: всегда ли это в вашем примере? Затем вы можете просто взять подстроку, начиная с позиции 2, и обрезать ее (s.substring (2) .trim()).
В качестве альтернативы, если часть перед «:» изменяется, разделите строку на «:», используя split (см. http://www.java-examples.com/java-string-split-example).
Если нет фиксированных разделителей, все становится более привлекательным.Вы можете использовать, например. как предлагается перед регулярным выражением в соответствии с числовой частью.
Что вы пробовали? Вы посмотрели на javadocs String? Было ли stackoverflow первым, что вы пробовали? –
http://www.googleguide.com – Matten
'System.out.println (« 16896208896 »);' –