--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
1. 去除空格
模拟取出字符串两边的空格
思路:
1.判断字符串第一个字符是不是空格,如果是则继续向后判断,直到不是空格,然后记下此标记
2.逆向判断字符串,也是直到判断不是空格,记下下标
3,然后截取字符串即可
public class ThrowSpace { public static void main(String[] args) { System.out.print("--"); String str = " abcdef "; System.out.print(method(str)); System.out.print("--"); } public static String method(String str) { char[] cs = str.toCharArray(); int x = 0, y = cs.length - 1; for (; x < cs.length; x++) { if (str.charAt(x) != ' ') { break; } } for (; y >= 0; y--) { if (str.charAt(y) != ' ') { break; } } return str.substring(x , y + 1); } } 结果: --abcdef--
2. 反转
模拟反转字符串
思路:
1.将字符串转换成字节数组
2.然后利用数组的反转功能,对数组反转
3.然后将反转后的字符数组转成成字符串,返回即可。
4.要是范围反转,你们就先取出那些要反转的,然后反转后,那么就在加上不反转的部分
public class ReverseString { public static void main(String[] args) { String str="abcdef"; System.out.println(reverseString(str)); String str1="123456789"; System.out.println(reverseString(str1,3,7)); } /*完全反转*/ public static String reverseString(String str){ char [] chs=str.toCharArray(); reverse(chs); return new String(chs); } /*指定范围反转*/ public static String reverseString(String str,int start,int end){ char [] chs=str.toCharArray(); String s1=new String(chs,0,start); String s2=new String(chs,end,chs.length-end); String s3=new String(chs,start,end-start); char [] newch=s3.toCharArray(); reverse(newch); return s1+new String(newch)+s2; } /*反转数组*/ public static void reverse(char [] cs){ for(int start=0,end=cs.length-1;start<=end;start++,end--){ swap(cs,start,end); } } /*交换数组中两个字符位置*/ public static void swap(char [] cs,int start,int end){ char temp=cs[start]; cs[start]=cs[end]; cs[end]=temp; } } 结果: fedcba 123765489
3. 计数
计算字符串中指定字符的个数
思路:
1.将字符串转换成数组
2.定义一个计数器,然后再循环查找数组的元素,每查找到一个,那么计数器增加1
3.将计算器返回即可
public class CountString { public static void main(String[]args) { Stringstr="abcdjasbabsdaeas"; System.out.println("str中有"+count(str,'a')+"个字符"+'a'); } /*开始查找计数*/ public static int count(Stringstr,char c){ char [] cs=str.toCharArray(); int count=0; for(char cc:cs){ if(cc==c) count++; } return count; } } 结果: str中有5个字符a
4.获取字串
获取两个字符串中最大相同子串(按照长度比较)
思路:
1.将短的字符串按照长度递减的方式获取到,
2.将获取到得子串去长串中判断是否包含
3.如果包含则找到。
public class getMaxString { public static void main(String[] args) { String s1="acbdgyangsdds"; String s2="dayangqxdw"; System.out.println(getMaxSUbString(s1,s2)); } /*获取最大相同字符串*/ public static String getMaxSUbString(String s1,String s2){ if(s2.length()>s1.length()){ String temp=s1; s1=s2; s2=temp; } for(int x=0;x<s2.length();x++){ for(int y=0,z=s2.length()-x;z!=s2.length()+1;y++,z++){ String temp=s2.substring(y,z); if(s1.contains(temp)){ return temp; } } } return ""; } } 结果: yang
--------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------