String 过滤字符串
来源:互联网 发布:域名备案之后怎么用 编辑:程序博客网 时间:2024/05/16 17:29
package com.yuanls.dataqc.inter;
import java.util.ArrayList;
import java.util.HashMap;
public class FilterStrUtil {
private int maxLength;
private HashMap<String, String> filterStrs = new HashMap<String, String>();
// 初始化需要过滤掉什么符号
private String initStr(String value) {
StringBuffer sb = new StringBuffer();
sb.append(value);
return sb.toString();
}
/**
* * str-被过滤得字符串
*
* * s-需要过滤得字符串
*
* * 获得剩下未过滤的字符串
*
*
*/
private String getNextStr(String str, int start, int slength) {
if (start == 0) {
str = str.substring(slength);
} else if (start + slength < str.length()) {
str = str.substring(start + slength);
}
return str;
}
/**
* * str-被过滤得字符串
*
* * s-需要过滤得字符串
*
* * 获得过滤后的字符串
*
*
*/
private StringBuffer getFilterStr(StringBuffer sb, String str, int start,
String s) {
if (start != 0) {
sb.append(str.substring(0, start));
}
sb.append(filterStrs.get(s));
return sb;
}
/**
* * str-被过滤的字符串
*
* * 过滤,并组合过滤后的字符串
*
*
*/
public String filter(String str) {
StringBuffer resultStr = new StringBuffer();
for (int start = 0; start < str.length(); start++) {
for (int end = start + 1; end <= str.length()
&& end <= start + maxLength; end++) {
String s = str.substring(start, end);
int slength = s.length();
if (filterStrs.containsKey(s)) {
resultStr = getFilterStr(resultStr, str, start, s);
str = getNextStr(str, start, slength);
start = 0;
end = start;
}
}
}
resultStr.append(str);
return resultStr.toString();
}
public void put(String key,String value) {
int keyLength = key.length();
filterStrs.put(key, initStr(value));
if (keyLength > this.maxLength)
maxLength = keyLength;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//要检测的字段集合
ArrayList<String> needContro = new ArrayList<String>();
needContro.add("-9999");
needContro.add("234");
needContro.add("+");
needContro.add("");
needContro.add("12");
needContro.add("12.4");
needContro.add(null);
FilterStrUtil t=new FilterStrUtil();
//特殊字符转换
t.put("+","0");
t.put("-9999","0");
for(String str :needContro){
//缺测代表值
if(str==null||str.equals("")){
str="-3";
//continue;
}
System.out.println(t.filter(str));
}
}
}
import java.util.ArrayList;
import java.util.HashMap;
public class FilterStrUtil {
private int maxLength;
private HashMap<String, String> filterStrs = new HashMap<String, String>();
// 初始化需要过滤掉什么符号
private String initStr(String value) {
StringBuffer sb = new StringBuffer();
sb.append(value);
return sb.toString();
}
/**
* * str-被过滤得字符串
*
* * s-需要过滤得字符串
*
* * 获得剩下未过滤的字符串
*
*
*/
private String getNextStr(String str, int start, int slength) {
if (start == 0) {
str = str.substring(slength);
} else if (start + slength < str.length()) {
str = str.substring(start + slength);
}
return str;
}
/**
* * str-被过滤得字符串
*
* * s-需要过滤得字符串
*
* * 获得过滤后的字符串
*
*
*/
private StringBuffer getFilterStr(StringBuffer sb, String str, int start,
String s) {
if (start != 0) {
sb.append(str.substring(0, start));
}
sb.append(filterStrs.get(s));
return sb;
}
/**
* * str-被过滤的字符串
*
* * 过滤,并组合过滤后的字符串
*
*
*/
public String filter(String str) {
StringBuffer resultStr = new StringBuffer();
for (int start = 0; start < str.length(); start++) {
for (int end = start + 1; end <= str.length()
&& end <= start + maxLength; end++) {
String s = str.substring(start, end);
int slength = s.length();
if (filterStrs.containsKey(s)) {
resultStr = getFilterStr(resultStr, str, start, s);
str = getNextStr(str, start, slength);
start = 0;
end = start;
}
}
}
resultStr.append(str);
return resultStr.toString();
}
public void put(String key,String value) {
int keyLength = key.length();
filterStrs.put(key, initStr(value));
if (keyLength > this.maxLength)
maxLength = keyLength;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//要检测的字段集合
ArrayList<String> needContro = new ArrayList<String>();
needContro.add("-9999");
needContro.add("234");
needContro.add("+");
needContro.add("");
needContro.add("12");
needContro.add("12.4");
needContro.add(null);
FilterStrUtil t=new FilterStrUtil();
//特殊字符转换
t.put("+","0");
t.put("-9999","0");
for(String str :needContro){
//缺测代表值
if(str==null||str.equals("")){
str="-3";
//continue;
}
System.out.println(t.filter(str));
}
}
}
0 0
- String 过滤字符串
- Java String 过滤子字符串
- java String 中 startsWith() 对字符串开头进行过滤 endsWith()对字符串结尾进行过滤
- 字符串应用,过滤关键字,char*版/string版/CString版
- 字符串过滤
- 过滤字符串
- 字符串过滤
- 字符串过滤
- 字符串过滤
- 字符串过滤
- 字符串过滤
- 字符串过滤
- 字符串过滤~
- 字符串过滤
- 字符串过滤
- 字符串过滤
- 字符串过滤
- 字符串过滤
- Html的基础
- boost.smart_ptr-智能指针scoped_ptr
- xxs简单了解
- Android 自定义CircleProgressBarView
- ntfs readdir的速度太慢
- String 过滤字符串
- java线程扫盲笔记
- Apache Shiro 使用手册(三)Shiro 授权
- 01背包的变形
- 闭包,this指向,作用域,绑定对象
- String.format 的大用场
- 感受
- 关于Linux C++代码在Windows平台上的调试运行
- 批处理命令