我在Java中有一个String
变量,如下所示。
String s = "hello\nthis is java programme\n.class file will be generated after executing it\n";
现在我需要从上面的字符串变量中提取.class
部分。怎么做?
答案 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
答案 1 :(得分:0)
如果您只想检查字符串是否包含" .class"你可以轻松地检查它里面的模式:
s.contains(".class");
或者,如果您想使用正则表达式检查字符串中包含.class
的{{1}}模式:
\n
Pattern p = Pattern.compile(".*\\.class.*", Pattern.DOTALL);
Matcher m = p.matcher(s);
boolean b = m.matches();
也可以将DOTALL
视为角色。
s是您在代码中定义的字符串。
答案 2 :(得分: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));
}