--------------------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培训、期待与您交流! --------------------