❶ java 用poi 操作excel 把里面的数据取出后过滤掉非法的字符等 ,在放到数据库中
楼上哥们正解... 帮你再详细点吧
解析Excle使用POI的话 ,你是直接读取文件还是做上传再来,如果上传就稍微麻烦点,直接读取比较简单
解析Exlce的话主要用到的几个类HSSFWorkbook ,Excle对象
通过他获取你的sheet ,可以通过制定名字来wb.getShee(名字);
然后通过sheet 获取行 sheel.getRow(first),通过行再获取每个单元格HSSFCell
你在获取每个单元格的时候最好先判断下是否为空这些,避免空指针
同时POI也提供了 判断取出来的值是什么类型的比如字符串这些。
过滤非法字符串这些 你可以通过Pattern.matches(),这个方法来匹配
最后将读取的excle数据封装成为集合,批量插入数据库...
加油把.... 网上有很多这种资料.. ~~
❷ 谁知道在JAVA中怎么屏蔽非法字符
只能输入数字:“^[0-9]*$”只能输入n位的数字:“^\d{n}$”只能输入至少n位数字:“^\d{n,}$”只能输入m-n位的数字:“^\d{m,n}$”只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”只能输入非零的正整数:“^\+?[1-9][0-9]*$”只能输入非零的负整数:“^\-[1-9][0-9]*$”只能输入长度为3的字符:“^.{3}$”只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”只能输入由数字、26个英文字母或者下划线组成的字符串:“^\w+$”验证用户密码:“^[a-zA-Z]\w{5,17}$”正确格式为:以字母开头,长度在6-18之间,
❸ 在java中定义char变量出现的非法字符怎么处理
需要添加抛出声明,但是可以从键盘输入一个字符,如果输入多个的话,那么只会保存第一个字符。使用Scanner 类从键盘录入一个字符,使用String 接收; 然后使用 String 的charAt功能。
char c = new java.util.Scanner(System.in).next().charAt(0);
这算是最常用的了吧,实际上就是输入字符串后再利用charAt(0)得到
char c = new java.util.Scanner(System.in).next().toCharArray[0];
勉强算得上第二种吧!我以前很常用的。可以用,但是毕竟不好,浪费资源,又没有第一种简单。
char c = (char)new BufferedReader(new InputStreamReader(System.in)).read();
这个也可以读取第一个输入的字符,不过这应该是在没有Scanner类的时候使用的,现在使用显得有点麻烦了。
❹ java过滤非法字符的filter
filter代码在pujia12345提供的代码上改的;
jsp页面的编码你设成你自己的,我用的是utf-8。
input.jsp输入后,正常跳转到handle.jsp,而禁词已经被过滤。
filter:
package test;
import java.io.*;
import javax.servlet.*;
import java.util.*;
public class MyFilter implements Filter
{
private List<String> unString;
public void init(FilterConfig filterConfig) throws ServletException
{
unString = new ArrayList<String>();
unString.add("日");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
String content = request.getParameter("content");//需要过滤的参数
if(content!=null){
for (int i = 0; i < unString.size(); i++)
{
String strIllegal = unString.get(i);
if (content.indexOf(strIllegal) >= 0)
{
content = content.replaceAll(strIllegal, "");//非法字符替换成空
}
request.setAttribute("content", content);//为request设置属性保存修改后的值
}
}
chain.doFilter(request, response);
}
public void destroy()
{
//System.out.println("过滤器销毁");
}
}
//---------------------------//
web.xml:
<filter>
<filter-name>myfilter</filter-name>
<filter-class>test.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>myfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//---------------------------//
输入页面input.jsp:
<%@page contentType="text/html;charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>input.jsp</title>
</head>
<body>
<form action="handle.jsp" method="post">
<input type="text" name="content" />
<input type="submit" value=" 提交 " />
</form>
</body>
</html>
//---------------------------//
input提交的页面handle.jsp:
<%@page contentType="text/html;charset=utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> handle.jsp </title>
</head>
<body>
<%
String content = (String)request.getAttribute("content");
out.println(content);
%>
</body>
</html>
❺ java : json 过滤不合法字符的工具包工具类工具
json中没有自带的过滤不合法字符的工具类,需要用户自己编写。
将源数据中的'、"、\\、空格、换行等都替换成转义符,这样你拼接的json数据就是正常的,显示出来格式和数据库中的一样。
function valueReplace(v) {
if (v.indexOf("\"") != -1) {
v = v.toString().replace(new RegExp('(["\"])', 'g'), "\\\"");
}
else if (v.indexOf("\\") != -1)
v = v.toString().replace(new RegExp("([\\\\])", 'g'), "\\\\");
return v;
}
❻ 在JAVA中输入什么代码才能屏蔽非法字符
只能输入数字:“^[0-9]*$”只能输入n位的数字:“^\d{n}$”只能输入至少n位数字:“^\d{n,}$”只能输入m-n位的数字:“^\d{m,n}$”只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”只能输入非零的正整数:“^\+?[1-9][0-9]*$”只能输入非零的负整数:“^\-[1-9][0-9]*$”只能输入长度为3的字符:“^.{3}$”只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”只能输入由数字、26个英文字母或者下划线组成的字符串:“^\w+$”
❼ java如何去掉字符串中的非法字符
也可以循环替换
❽ java代码怎么校验身份证号码含有非法字符
如果只要判断有非法的字符(除0-9和Xx外)可用正则表达式publicstaticvoidmain(String[]args){//="2142213weqrwe32";StringregEx="[^0-9Xx]";Patternpat=Pattern.compile(regEx);Matchermat=pat.matcher(s);booleanrs=mat.find();if(rs){System.out.print("有非法字符");}另外,校验身份证号码有专门程序的,可直接校验身份证号是否正确,在自己在网上找下
❾ JAVA特殊字符过滤方法
public static String StringFilter(String str) throws PatternSyntaxException {
// 只允许字母和数字
// String regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字符
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
❿ Java编程运行时出现非法字符怎么破求大神指点
修改下你.java源码文件的编码类型,如果你是用windows记事本写的,那么他是ANSI编码的,改成uttf8或者unicode编码就好了