如何删除文本示例中的URL
String str="Fear psychosis after #AssamRiots - http://www.google.com/LdEbWTgD http://www.yahoo.com/mksVZKBz";
Run Code Online (Sandbox Code Playgroud)
使用正则表达式?
我想删除文本中的所有网址.但它没有用,我的代码是:
String pattern = "(http(.*?)\\s)";
Pattern pt = Pattern.compile(pattern);
Matcher namemacher = pt.matcher(input);
if (namemacher.find()) {
str=input.replace(namemacher.group(0), "");
}
Run Code Online (Sandbox Code Playgroud) 我有一个 Tomcat 8.5.32 配置为使用 DCEVM
\n\nJAVA_OPTS="-Xms512m -Dcatalina.home=$CATALINA_HOME -XXaltjvm=dcevm -javaagent:/usr/share/tomcat/lib/hotswap-agent-1.3.0.jar=autoHotswap=true"\nRun Code Online (Sandbox Code Playgroud)\n\n要动态重新加载的类在 $CATALINA_HOME/conf/Catalina/localhost/mycontext.xml 中指定,以便 Tomcat 直接从 Eclipse 自动重新生成的 .class 文件重新加载它们。
\n\n<Context docBase="~/workspace/myapp/myapp-web/src/main/webapp">\n<Resources>\n <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n base="/vagrant/workspace/myapp/myapp-models/target/classes" internalPath="/" webAppMount="/WEB-INF/classes" />\n <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n base="/vagrant/workspace/myapp/myapp-services/target/classes" internalPath="/" webAppMount="/WEB-INF/classes" />\n <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n base="/vagrant/workspace/clocial/myapp-web/target/classes" internalPath="/" webAppMount="/WEB-INF/classes" />\n <PostResources className="org.apache.catalina.webresources.DirResourceSet"\n base="/vagrant/workspace/myapp/myapp-web/target/lib" internalPath="/" webAppMount="/WEB-INF/lib" />\n </Resources>\n</Context>\nRun Code Online (Sandbox Code Playgroud)\n\n这可行,但 Tomcat 加载上下文需要两分钟多的时间,因为有一百多个目录。
\n\n通过org.apache.catalina.startup.ContextConfig.level = FINE在 conf/logging.properties 进行设置,我得到了一条跟踪信息,表明大部分时间大概都花在了搜索注释上。
有没有办法告诉 Tomcat 不要在某些目录中查找注释,以便只扫描实际包含带注释的类的目录?
\n\n我\xc2\xb4一直在阅读ContextConfig 的源代码,似乎有一些排除规则,但我无法\xc2\xb4理解它们。
\n\n以下是 catalina.out 的摘录:
\n\n12:39:32.992 INFO org.apache.catalina.startup.HostConfig.deployDescriptor Deploying configuration descriptor …Run Code Online (Sandbox Code Playgroud) 我在使用不同 Java 版本的应用程序环境中工作:7、8 和更高版本。开发人员因此安装了几个 JDK,每个 Maven pom.xml 确实有正确的<source>和<target>标签。但是,有时开发人员会无意中使用更高版本的 JDK 进行编译。所以它们可能包含一个 Java 8 类,就像java.time.LocalDate在 Java 7 中一样,它会编译,因为它能够在编译时解析导入。但是,当应用程序稍后移动到在 JRE 7 上运行时,它将失败,因为它无法找到 Java 8 类。可以在 pom.xml 中创建一个配置文件,如:
<profile>
<id>compiler</id>
<properties>
<JAVA_1_4_HOME>C:\Program Files\Java\j2sdk1.4.2_09</JAVA_1_4_HOME>
</properties>
</profile>
Run Code Online (Sandbox Code Playgroud)
但是,JDK 的位置因开发人员而异,我想要一个对每个人都通用的 pom.xml。
所以问题是,如何强制 Maven 使用给定的 JDK 版本?不仅<source>和<target>JDK 本身,而且以一种通用的方式不绑定到任何给定的计算机。
我有一系列的Java方法,所有的外观,除了不同的类象一样Class1Number,Class2Number,Class3Number等如下实施。有什么方法可以编写一个将类作为参数的方法?
Set<String> trimClass1NumberList(Set<String> criteria){
Set<String> validData = new HashSet<>();
Set<Class1Number> numberList = criteria.stream().map(String::trim).map(Class1Number::valueOf)
.filter(Class1Number::isWellformed).collect(Collectors.toSet());
for (Class1Number num : numberList) {
// Do somehing with validData
}
return validData;
}
Set<String> trimClass2NumberList(Set<String> criteria){
Set<String> validData = new HashSet<>();
Set<Class2Number> numberList = criteria.stream().map(String::trim).map(Class2Number::valueOf)
.filter(Class2Number::isWellformed).collect(Collectors.toSet());
for (Class2Number num : numberList) {
// Do somehing with validData
}
return validData;
}
Run Code Online (Sandbox Code Playgroud) java ×4
annotations ×1
dcevm ×1
java-7 ×1
java-8 ×1
java-stream ×1
maven ×1
regex ×1
tomcat ×1