xmlstringfilter.java
来自「短信系统SMS:支持普通短信、长短信和wap push短信的发送。」· Java 代码 · 共 134 行
JAVA
134 行
package com.ekun.common.util;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author ekun
* @version 1.0
*/
public class XMLStringFilter
{
public static final char AND_CHAR = '&';
public static final char LEFT_CHAR = '<';
public static final char AND_CHAR_REPLACEMENT = 249; //the ascii code of letter ù
public static final char LEFT_CHAR_REPLACEMENT = 250; //the ascii code of letter ú
/**
* constructor
*/
private XMLStringFilter()
{
}
/**
* replace the related character
* @param source
* @return
*/
public static String replace(String source)
{
if (source == null || source.length() == 0)
{
return source;
}
int len = source.length();
char[] val = new char[len];
source.getChars(0, len, val, 0);
int i = -1;
while (++i < len)
{
if (val[i] == AND_CHAR || val[i] == LEFT_CHAR)
{
break;
}
}
if (i < len)
{
char buf[] = new char[len];
for (int j = 0; j < i; j++)
{
buf[j] = val[j];
}
while (i < len)
{
char c = val[i];
if (c == AND_CHAR)
{
buf[i] = AND_CHAR_REPLACEMENT;
}
else if (c == LEFT_CHAR)
{
buf[i] = LEFT_CHAR_REPLACEMENT;
}
else
{
buf[i] = c;
}
i++;
}
return new String(buf);
}
return source;
}
/**
* restitute the related character
* @param source
* @return
*/
public static String restitute(String source)
{
if (source == null || source.length() == 0)
{
return source;
}
int len = source.length();
char[] val = new char[len];
source.getChars(0, len, val, 0);
int i = -1;
while (++i < len)
{
if (val[i] == AND_CHAR_REPLACEMENT ||
val[i] == LEFT_CHAR_REPLACEMENT)
{
break;
}
}
if (i < len)
{
char buf[] = new char[len];
for (int j = 0; j < i; j++)
{
buf[j] = val[j];
}
while (i < len)
{
char c = val[i];
if (c == AND_CHAR_REPLACEMENT)
{
buf[i] = AND_CHAR;
}
else if (c == LEFT_CHAR_REPLACEMENT)
{
buf[i] = LEFT_CHAR;
}
else
{
buf[i] = c;
}
i++;
}
return new String(buf);
}
return source;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?