📄 stringutils.java
字号:
/*
* StringUtils.java
* Copyright (c) 2000-2001 Brad D Matlack.
* License http://www.gnu.org/copyleft
*/
package com.example.util;
import java.io.ByteArrayOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
/**
* StringUtils has code borrowed from org.apache.turbine.util.StringUtils
*/
public class StringUtils
{
/**
* Remove Underscores from a string and replaces first
* Letters with Capitals. foo_bar becomes FooBar
*/
public static String removeUnderScores (String data)
{
String temp = null;
StringBuffer out = new StringBuffer();
temp = data;
StringTokenizer st = new StringTokenizer(temp, "_");
while (st.hasMoreTokens())
{
String element = (String) st.nextElement();
out.append ( capitalize(element));
}
return out.toString();
}
/**
* Makes the first letter caps and leaves the rest as is.
*/
public static String capitalize ( String data )
{
StringBuffer sbuf = new StringBuffer(data.length());
sbuf.append(data.substring(0, 1).toUpperCase());
sbuf.append(data.substring(1));
return sbuf.toString();
}
/**
* Capitalizes a letter.
*/
public static String capitalize ( java.lang.String data, int pos )
{
StringBuffer buf = new StringBuffer(data.length());
buf.append( data.substring(0,pos -1) );
buf.append( data.substring(pos - 1,pos).toUpperCase() );
buf.append( data.substring(pos, data.length()) );
return buf.toString();
}
/**
* un-capitalizes a letter.
*/
public static String unCapitalize ( String data, int pos )
{
StringBuffer buf = new StringBuffer(data.length());
buf.append( data.substring(0, pos -1) );
//System.out.println("1:" + buf.toString());
buf.append( data.substring(pos - 1, pos).toLowerCase() );
//System.out.println("1:" + buf.toString());
buf.append( data.substring(pos, data.length()) );
//System.out.println("1:" + buf.toString());
return buf.toString();
}
/**
* Splits the provided CSV text into a list.
*
* @param text The CSV list of values to split apart.
* @param pos The piece of the array
* @return The list of values.
*/
public static String[] split(String text, String separator)
{
StringTokenizer st = new StringTokenizer(text, separator);
String[] values = new String[st.countTokens()];
int pos = 0;
while (st.hasMoreTokens())
{
values[pos++] = st.nextToken();
}
return values;
}
/**
* Joins the elements of the provided array into a single string
* containing a list of CSV elements.
*
* @param list The list of values to join together.
* @param separator The separator character.
* @return The CSV text.
*/
public static String join(String[] list, String separator)
{
StringBuffer csv = new StringBuffer();
for (int i = 0; i < list.length; i++)
{
if (i > 0)
{
csv.append(separator);
}
csv.append(list[i]);
}
return csv.toString();
}
/**
* 将字符串中tag替换成为指定的info,只替换一次
* @param source,原来的字符串
* @param info,替换tag的字符串
* @param tag,要被替换掉的tag
* @return 替换后的内容
*/
public static StringBuffer replace(String source, String info, String tag) {
if ((source == null) || (source.length() == 0))
return new StringBuffer("");
if ((info == null) || (tag == null) || (tag.length() == 0))
return new StringBuffer(source);
int index = source.indexOf(tag);
if (index < 0)
return new StringBuffer(source);
int length = tag.length();
StringBuffer ret = new StringBuffer(source);
ret.replace(index, index+length, info);
return ret;
}
/**
* 将字符串中所有的tag全部替换成为指定的info
* @param source,原来的字符串
* @param info,替换tag的字符串
* @param tag,要被替换掉的tag
* @return 替换后的内容
*/
public static String replaceAll(String source, String info, String tag) {
if ((source == null) || (source.length() == 0))
return "";
if ((info == null) || (tag == null) || (tag.length() == 0))
return source;
int index = source.indexOf(tag);
boolean valid = (index >= 0);
if (!valid)
return source;
StringBuffer ret = new StringBuffer();
int start = 0;
int length = tag.length();
while(valid) {
ret.append(source.substring(start, index));
ret.append(info);
start = index + length;
index = source.indexOf(tag, start);
valid = (index >= 0);
}
ret.append(source.substring(start));
return ret.toString();
}
/**
* 将字符串中所有的tag全部替换成为指定的info
* @param source,原来的字符串
* @param info,替换tag的字符串
* @param tag,要被替换掉的tag
* @return 替换后的内容
*/
public static String replaceAll(String source, String info,String startTag, String endTag ) {
if((source == null) || (source.length() == 0)){return "";}
if((info == null) || (startTag == null) || (startTag.length() == 0) || (endTag == null) || (endTag.length() == 0) ){
return source;
}
int sIndex = source.indexOf(startTag);
int eIndex = source.indexOf(endTag);
boolean valid = (sIndex >= 0 && eIndex >= 0);
if (!valid){
return source;
}else{
if (sIndex>eIndex){
eIndex = source.indexOf(endTag, sIndex);
}
}
int sLength = startTag.length();
int eLength = endTag.length();
StringBuffer ret = new StringBuffer();
int start = 0;
while(valid) {
info=source.substring(sIndex+1,eIndex).trim();
ret.append(source.substring(start, sIndex+1));
ret.append(info);
ret.append(endTag);
start = eIndex+1;
sIndex = source.indexOf(startTag, start);
eIndex = source.indexOf(endTag, start);
valid = (sIndex >= 0 && eIndex >= 0 && eIndex > sIndex);
}
ret.append(source.substring(start));
return ret.toString();
}
/**
* 将输入字符中的SQL保留字进行替换,目前只替换英文半角的单引号'
* 单引号替换方法:一个单引号换成连续的两个单引号,例如'ABC'D替换成''ABC''D
* @param s
* @return
*/
public static String getSQLencode(String s){
if ((s == null) || (s.length() == 0))
return "";
StringBuffer sb = new StringBuffer();
char c;
for(int i = 0; i < s.length(); i++) {
c = s.charAt(i);
switch (c){
case '\'':
sb.append("''");
break;
default:
try{
sb.append(c);
}catch(Exception e){
}
}
}
return sb.toString();
}
//对给定字符进行URL编码
public static String encode(String value) {
if(value.length()==0) return "";
return java.net.URLEncoder.encode(value);
}
//对给定字符进行URL解码
public static String decode(String value) {
if(value.length()==0) return "";
return java.net.URLDecoder.decode(value);
}
/**
* 将输入字符中的格式化成precision指定的程度,截掉的部分用'...'布齐
*/
public static String getFormatString(String s,int precision){
String retValue="";
if((s == null) || (s.length() == 0)) retValue="";
if(s.length()<=precision) retValue=s;
if(s.length()==precision+1) retValue=s;
if(s.length()>precision+1) retValue=s.substring(0,precision-1)+"...";
return retValue;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -