package com.lyj.string; 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日