2014-07-07 3 views
-1

Я хочу получить конкретную часть строки из полного слова.Получить часть строки в java

Например:

У меня есть следующие строки.

AB_CD_E this is my book 

Исходя из вышеизложенного, я хочу, чтобы получить строку следующим образом:

AB_CD_E 

Как сделать, чтобы получить вышеуказанную строку? Я застрял в этом.

+0

Вы пробовали [ 'Строковые # indexOf'] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf (java.lang.String)) и ['String # substring'] (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring (int))? – MadProgrammer

+0

http://docs.oracle.com/javase/tutorial/java/data/strings.html –

+0

Либо нужно использовать 'substring()' или 'split()'. –

ответ

0

Разделяет строку вокруг совпадений данного регулярного выражения.

источник: http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

Код:

String s ="AB_CD_E this is my book"; 
    String S[] = s.split(" "); 
    System.out.println(S[0]); 
    String S1[] = S[0].split("\\_");  
    for(int i = 0 ; i< S1.length-1; i++) 
     System.out.print(S1[i]+ "_"); 

выход:

AB_CD_E 
AB_CD_ 
+0

Чувак, у вас есть потрясающее имя экрана, но я не уверен в вашем ответе, почему бы вам не предложить какой-либо трюк регулярных выражений – vikeng21

+0

на самом деле, я хочу получить AB_CD_E или какую-нибудь строку только AB_CD – peter

+0

@peter Как вам сейчас нравится? Я отредактировал мой код –

1

На самом деле вы хотите получить подстроку из строки. поэтому вам нужно использовать метод класса substring().

Синтаксис этого метода ниже

public String substring(int beginIndex) 

или

public String substring(int beginIndex, int endIndex) 

здесь beginindex в исходное положение и ENDINDEX заканчивается положение подстроки вы хотите получить этот метод Retuns строку, содержащую суб строка, запрошенная вами.

для примера: beginindex = 1 и endindex =7 после выполнения кода выше, этот метод возврата это "AB_CD_E"

+0

кажется, что у вас есть хороший ответ, но вам нужно изменить свой формат. –

+0

спасибо за ваше предложение. Я новичок в переполнении стека, дайте несколько советов о переполнении стека. –

+0

это ki было на твоих ботинках :) –

0

Вам нужно использовать подстроку. В этом примере:

stringName.substring(0, 7) 

Это должно вернуть то, что вы ищете. Чтобы определить значения, первый из них является индексом первого символа, не забывайте, что значения индекса начинаются с 0, а второе значение - количество символов в вашей подстроке.

+0

если у меня есть текст, подобный этому AB_CD_E, это моя книга и AB_CD, это мое перо, поэтому оно не будет – peter

+0

Итак, похоже, вам нужно использовать две подстроки исходной строки, чтобы получить эту вторую длинную строку. – bphand95

0

Вы можете использовать substring(), если вы уже знаете точное местоположение и количество символов той части строки, которую хотите извлечь. Есть два варианта: substring(int) и substring(int, int):

Или, если вы знаете, что строка, которую вы хотите извлечь разграничиваются определенным символом (пространства в вашем случае), вы можете использовать split(). Опять же, существует два варианта: split(String)split(String, int).

0

В этом случае, используя String.split, вероятно, ваш лучший выбор. String.split разделит вашу строку на массив на основе разделителя, который вы передаете. В этом конкретном примере ваша строка разделяется пробелами, и вы пытаетесь получить первую часть строки, поэтому что-то вроде этого будет работать для вы.

private static final String STR = "AB_CD_E this is my book"; 
    public static void main(String[] args) 
    { 
     // TODO Auto-generated method stub 
     String first = STR.split(" ")[0]; 
     System.out.println(first); 
    } 
Смежные вопросы