① 如何用Java正则表达式检测字符串是否是数字组成的
1,正则表达式概念介绍(内容来自网络):正则表达式,又称规则表达式,英文名为Regular Expression,在代码中常简写为regex、regexp或RE,是计算机科学的一个概念。
正则表通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式是对字符串(包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式是一种文本模式,模式描述在搜索文本时要匹配的一个或多个字符串。
2,检测字符串是否由数字组成,则采用该表达式:
publicstaticvoidmain(String[]args){
//要验证的字符串
Stringstr="[email protected]";
//是否数字正则表达式
StringregEx="^[0-9]*$";
//编译正则表达式
Patternpattern=Pattern.compile(regEx);
//忽略大小写的写法
Matchermatcher=pattern.matcher(str);
//字符串是否与正则表达式相匹配
booleanrs=matcher.matches();
//如果为数字,则输出true,反之false,即可用该变量做条件判断
System.out.println(rs);
}
② 在JAVA中输入什么代码才能屏蔽非法字符
Java代码 package com.zhangkai.Filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class FilterToWord implements Filter { //销毁,当服务器关闭的时候,也就destroy了。 @Override public void destroy() { } //过滤 @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //首先拿到你输入的字符 String content = request.getParameter("content"); //第二步,判断一下拿到的值是不是空值 if (content != null) { //比如我们规定含有AAA的是非法字符 if (content.indexOf("AAA") == -1) { //如果不包含,则继续往下操作 chain.doFilter(request, response); } else { //反之,就提示用户,输入有误 System.out.println("有非法文字"); //如果有需要依然可以使用request.getRequestDispatcher跳转 } } else { //如果是空值,则继续操作 chain.doFilter(request, response); } } //初始化,服务器一打开就init。 @Override public void init(FilterConfig arg0) throws ServletException { } }
③ java 正则过滤字符串穿中的数字开头字符
可以。Java正则表达式:32="1"\s+59="0000"
完整的程序如下:
publicclassLL{
publicstaticvoidmain(String[]args){
Strings="<root><users><userid="2739751"ccted="0000000000"32="1"59="0000"name="张非"></user></users></root>";
System.out.println(s.replaceAll("32="1"\s+59="0000"",""));
}
}
运行结果:
<root><users><user id="2739751" ccted="0000000000" name="张非"></user></users></root>
④ 如何用正则表达式去除一个字符串里面的数字和小数点以外的字符
1、新建java文件,TestRegexp.java;
⑤ JAVA中如何过滤字符串里面特殊字符
class test
{
public static void main(String []args)
{
String a = "1111-22-33 13:15:46",b=new String();
int i,j,t;
for(i=0;i<a.length();i++)
if(a.charAt(i)!='-' && a.charAt(i)!=':' && a.charAt(i)!=' ')
b=b+a.charAt(i);
System.out.println(b);
}
}
⑥ java解决一个字符串数组过滤的问题,要求效率尽量快.
中文分词应该属于另外一个大范畴,我就没考虑了。
仅仅是尽快滤出之前没有的词,
import java.util.Comparator;
import java.util.TreeSet;
public class Test {
static public int removeOccurances(StringBuilder buf,String word){
int c=0,p,len=word.length();
for(;(p=buf.indexOf(word))!=-1; c++)
buf.delete(p, p+len);
return c;
}
static public void main(String argv[]){
String a[]={"北京","中国朝阳","北京朝阳","天津包子","中国北京",
"北京烤鸭","中国中国","北京中国饭店","北京北京北京",
"北京朝阳饭店","北京朝阳烤鸭饭店","中国北京朝阳饭店"
};
TreeSet<String> set=new TreeSet<String>(new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
int r=o1.length()-o2.length();
return r==0? o1.compareTo(o2):r;
}
});
StringBuilder buf=new StringBuilder();
for(String w:a){
buf.setLength(0); buf.append(w);
for(String dw:set) removeOccurances(buf, dw);
if(buf.length()>0){
w=buf.toString();
for(String dw:set)
if(buf.length()<dw.length()){
buf.setLength(0); buf.append(dw);
if(removeOccurances(buf, w)>0){
set.remove(dw); set.add(buf.toString());
}
}
set.add(w);
}
}
System.out.print(set);
}
}
===========
[中国, 北京, 朝阳, 烤鸭, 饭店, 天津包子]
效率应该是O(2W*D), W为数组长度,D为有效词数量
把你的算法拿来看看。应该多说自己