import java.util.ArrayList; import java.util.List; /** * 字符串测试类 * @author LYJ * */ public final class MyString { /** * 字符串转为大写 * @param source * @return */ public static final String toUpCase(final String source){ char []ch=source.toCharArray(); int index=0; for(char c:ch){ if(isAlphas(c)&&isSamll(c)){ ch[index]=(char)(c-0x20); } index++; } return charToString(ch); } /** * 字符串转化为小写 * @param source * @return */ public static final String toLowCase( final String source){ char []ch=source.toCharArray(); int index=0; for(char c:ch){ if(isAlphas(c)&&!isSamll(c)){ ch[index]=(char) (c+0X20); } index++; } return charToString(ch); } /** * 分割字符串 * @param source * @param split 分割串 * @return */ public final static String []split(String source,String split){ List<String> string=new ArrayList<String>(); int index=index(source.toCharArray(), split.toCharArray()); if(index!=-1) do{ string.add(source.substring(0, index)); source=source.substring(index+split.length()+1, source.length()); index=index(source.toCharArray(), split.toCharArray()); } while(index(source.toCharArray(), split.toCharArray())!=-1); string.add(source); return string.toArray(new String[string.size()]) ; } /*** * 分割字符串 * @param source * @param split * @return */ public final static String []split(String source,Character split){ List<String> splitList=new ArrayList<String>(); int start=-1; char[] sc=source.toCharArray(); for(int index=0,len=sc.length;index<len;index++){ if(sc[index]==split){ splitList.add(source.substring(start+1, index)); start=index; } } splitList.add(source.substring(start+1,source.length())); return splitList.toArray(new String[splitList.size()]); } /** * * @param source * @param old * @param replace * @return */ public final static String replace( final String source,Character old,String replace){ int start=-1; final StringBuilder sbd=new StringBuilder(12); char[] sc=source.toCharArray(); for(int index=0,len=sc.length;index<len;index++){ if(sc[index]==old){ sbd.append(source.substring(start+1, index)); start=index; sbd.append(replace); } } sbd.append(source.substring(start+1,source.length())); return sbd.toString(); } public final static String replaceAll(String source,String old,String replace){ final StringBuilder sd=new StringBuilder(); int index=index(source.toCharArray(), old.toCharArray()); if(index!=-1) do{ sd.append(source.substring(0, index)); sd.append(replace); source=source.substring(index+old.length(), source.length()); index=index(source.toCharArray(), old.toCharArray()); } while(index!=-1); sd.append(source); return sd.toString(); } /*** * 判断是否为字母 * @param c * @return */ private static boolean isAlphas(char c){ return (c>='a'&&c<='z')||(c>='A'&&c<='Z'); } /** * 判断是否为小写 * @param c * @return */ private static boolean isSamll(char c){ return (c>='a')&&(c<='z'); } /** * 判断字符串是否包含传入的字符串 * @param source 源字符串 * @param sequence 传入的字符串 * @return */ public static final boolean contians(String source,String sequence){ return containChary(source.toCharArray(), sequence.toCharArray()); } public static final boolean contains(String source,Character ch){ char [] sc=source.toCharArray(); for(int start=0,len=sc.length,end=len-start-1;start<len;start++){ if(sc[start]==ch||sc[end]==ch){ return true; } } return false; } private final static String charToString(char ...ch){ final StringBuilder sbd=new StringBuilder(); for(char c:ch){ sbd.append(c); } return sbd.toString(); } /** * 判断一个char数组中是否包含另一个char数组的所有元素 * 并且是从数组的第一个元素对比至最后一个元素 * @param charAry * @param newCharAyr * @return */ private final static boolean containChary(char[]charAry,char[]newCharAyy){ int old_size=charAry.length; int new_size=newCharAyy.length; if(old_size<new_size){ return false; } int index=0,count=0,newIndex=0; for(;index<old_size-2;index++){ while(newIndex<new_size-1&&charAry[index]== newCharAyy[newIndex]&&charAry[index+1]==newCharAyy[newIndex+1] ) { index++; newIndex++; count++; if(count==new_size-1){ return true; } } count=0; newIndex=0; } return false; } /** * 找到要查找的字符串出现的位置 * @param source * @param sequence * @return 未找到返回不存在 */ public static int index(char[] source,char[] sequence){ int old_size=source.length; int new_size=sequence.length; int index=0,count=0,newIndex=0; for(;index<old_size-2;index++){ int position=index; while(newIndex<new_size-1&&source[index]== sequence[newIndex]&&source[index+1]==sequence[newIndex+1] ) { index++; newIndex++; count++; if(count==new_size-1){ return position; } } count=0; newIndex=0; } return -1; } public static void main(String[] args) { System.out.println(replaceAll("1--23-456-789-abcd-efghi-jklmno", "78", "||er")); System.out.println(contains("", 'c')); System.out.println("qewqe{}{}wq123214311111111111111112321fdsfsda{3}2{1}".replace("{}", "XXX")); System.out.println(replaceAll("qewqe{}{}wq123214311111111111111112321fdsfsda{3}2{1}", "{}", "XXX")); /* char[]ch=new char[1234]; for(String s:split("1234-12345-1234abc-4324-8932-3213-qdsad-eqwew-12321-432432-432432--!@#$#$", '-')){ System.out.println(s+" "); } System.out.println(); //System.out.println(replaceAll("1234-1234-1234abc-4324", '-', "!")); System.out.println(index("123321312".toCharArray(), "32".toCharArray())); */} }

2812151886 LV1
2021年11月16日
chillyma LV1
2021年5月31日
gsc5212 LV1
2021年5月25日
heiheixiaosi LV1
2018年9月7日
爱java LV1
2017年11月29日
myutil LV1
2017年11月7日
shao139772 LV14
2017年6月22日
timor123 LV2
2016年10月29日
马骝爱代码 LV1
2016年10月28日
tonghui LV1
2016年5月4日