📄 stringutils.java
字号:
/*
* StringUtils.java
* Copyright (c) 2000-2001 Brad D Matlack.
* License http://www.gnu.org/copyleft
*/
package com.sure.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())
.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();
return (new StringBuffer(source)).replace(index, index+length, info);
}
/**
* 将字符串中所有的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)).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 && eIndex > sIndex);
if (!valid)
return source;
int sLength = startTag.length();
int eLength = endTag.length();
StringBuffer ret = new StringBuffer();
int start = 0;
while(valid) {
ret.append(source.substring(start, sIndex)).append(info);
start = eIndex + eLength;
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:
sb.append(c);
}
}
return sb.toString();
}
/**
* 将输入字符中的格式化成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;
}
/**
* 将输入字符中的格式化成precision指定的程度,截掉的部分用'...'布齐
*/
public static String getFormatString(double s,int precision){
String retValue="";
String temp=String.valueOf(s);
String beforStr="",afterStr="";
beforStr=temp.substring(0,temp.indexOf("."));
afterStr=temp.substring(temp.indexOf(".")+1);
if(afterStr.length()>precision){
retValue=beforStr+"."+afterStr.substring(0,precision);
}
else{
retValue = temp;
}
return retValue;
}
public static void main(String args[]){
System.out.println(getFormatString(0.1,2));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -