2017-01-16 3 views
-2

У меня есть переменная String, как указано ниже в Java.Извлечение шаблона из строки в Java

String s = "hello\nthis is java programme\n.class file will be generated after executing it\n"; 

Теперь мне нужно exctract в .class часть из выше переменной. Как это сделать?

+1

Если вам просто нужен '.class', а затем просто использовать' ".class" '. Предполагаю, вы хотели чего-то еще? Можете ли вы определить его более точно? Покажите, какова должна быть ваша строка вывода? – RealSkeptic

+0

Я предлагаю regex, но я не получу ваших требований. Какова была бы часть '.class'? Если это просто буквальный, то что вы подразумеваете под «извлечением»? – Thomas

+0

Это просто шаблон, который я пытаюсь извлечь из строки. –

ответ

0

Я действительно вижу только один способ для вас не просто вывести «.class», чтобы сначала увидеть, содержит ли строка «.class» перед ее печатью. Вот как это сделать. Передайте строку для поиска и строку для ее поиска.

//Returns the string if found, else returns an empty string 
public String FindString(String whatToFind, String whereToFind) 
{ 
    return whereToFind.contains(whatToFind) ? whatToFind : ""; 
} 

Выход

String s = "hello\nthis is java programme\n.class file will be generated after executing it\n"; 
System.out.println(FindString(".class", s)); // prints .class 
0

если вы просто хотите, чтобы проверить, если строка имеет «.class» шаблон внутри вы можете легко просто проверить это нравится:

s.contains(".class"); 

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

Pattern p = Pattern.compile(".*\\.class.*", Pattern.DOTALL); 
Matcher m = p.matcher(s); 
boolean b = m.matches(); 

DOTALL включает \n также считается персонажем.

s Строка, которую вы определили в своем коде.

0

Используйте регулярные выражения, как в этом answer

String s = "hello\nthis is java programme\n<some_class_name_here>.class file will be generated after executing it\n"; 
//the following pattern I think will find what you're looking for, 
Pattern pattern = Pattern.compile("\n(.*\.class)"); 
Matcher matcher = pattern.matcher(s); 
if (matcher.find()) 
{ 
    System.out.println(matcher.group(1)); 
} 
+0

Люди действительно хотят вам помочь, но, как показывают комментарии, ваш вопрос не Чисто. Я попытаюсь повторить то, что, я думаю, вы спрашиваете: У меня есть переменная 'String', которая имеет следующую структуру в Java. String s = "hello \ nthis является java-программой \ n .class файл будет сгенерирован после его выполнения \ n"; Теперь мне нужно извлечь '.class' из приведенной выше строковой переменной, так что у меня есть переменная с только классом и частью .class строки. Как извлечь только бит класса и .class строки? – DDoomUs

Смежные вопросы