String-练习1-2
2014-07-31 16:37
274 查看
1,模拟一个trim方法,去除字符串两端的空格
思路:
1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。
2,当开始和结尾都判断到不是空格时,就是要获取的字符串。
2,将一个字符串进行反转,将字符串中指定部分进行反转,"abcdefg";abfedcg
思路:
1,曾经学习过对数组的元素进行反转
2,将字符串变成数组,对数组反转
3,将反转后的数组变成字符串
4,只要将反转的部分的开始和结束位置作为参数传递即可
3,获取一个字符串在另一个字符串中出现的次数。
"abkkcdkkefkkskk"
思路:
1,定义个计数器
2,获取kk第一次出现的位置
3,从第一次出现位置后剩余的字符串中继续获取kk出现的位置
没获取一次就计数一次
4,当获取不到时,计数完成
4,获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。
"abcwerthelloyuiodef"
"cvhellobnm"
思路:
1,将短的那个子串按照长度递减的方式获取到
2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到class StringTest
{
public static void sop(String str)
{
System.out.println(str);
}
public static void main(String[] args)
{
String s = "sdfeg";
sop("("+s+")");
// s = myTrim(s);
// sop("("+s+")");
// sop("("+reverseString(s)+")");
sop("("+reverseString(s,1,3)+")");
}
//练习二、将字符串反转
/*
思路:
1,将字符串变成数组
2,对数组反转
3,将数组变成字符串
*/
public static String reverseString(String s,int start,int end)
{
//字符串变数组
char[] chs = s.toCharArray();
//反转数组
reverse(chs,start,end);
//将数组变成字符串
return new String(chs);
}
public static String reverseString(String s)
{
//字符串变数组
char[] chs = s.toCharArray();
//反转数组
reverse(chs);
//将数组变成字符串
return new String(chs);
}
private static void reverse(char[] arr,int x,int y)
{
for(int start=x,end=y-1;start<end;start++,end--)
{
swap(arr,start,end);
}
}
private static void reverse(char[] arr)
{
for(int start=0,end=arr.length-1;start<end;start++,end--)
{
swap(arr,start,end);
}
}
private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
//练习一、去除字符串两端空格
public static String myTrim(String str)
{
int start = 0,end = str.length()-1;
while(start<=end && str.charAt(start)==' ')
start++;
while(start<=end && str.charAt(end)==' ')
end--;
return str.substring(start,end+1);
}
}
思路:
1,判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。
2,当开始和结尾都判断到不是空格时,就是要获取的字符串。
2,将一个字符串进行反转,将字符串中指定部分进行反转,"abcdefg";abfedcg
思路:
1,曾经学习过对数组的元素进行反转
2,将字符串变成数组,对数组反转
3,将反转后的数组变成字符串
4,只要将反转的部分的开始和结束位置作为参数传递即可
3,获取一个字符串在另一个字符串中出现的次数。
"abkkcdkkefkkskk"
思路:
1,定义个计数器
2,获取kk第一次出现的位置
3,从第一次出现位置后剩余的字符串中继续获取kk出现的位置
没获取一次就计数一次
4,当获取不到时,计数完成
4,获取两个字符串中最大相同子串。第一个动作:将短的那个串进行长度一次递减的子串打印。
"abcwerthelloyuiodef"
"cvhellobnm"
思路:
1,将短的那个子串按照长度递减的方式获取到
2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到class StringTest
{
public static void sop(String str)
{
System.out.println(str);
}
public static void main(String[] args)
{
String s = "sdfeg";
sop("("+s+")");
// s = myTrim(s);
// sop("("+s+")");
// sop("("+reverseString(s)+")");
sop("("+reverseString(s,1,3)+")");
}
//练习二、将字符串反转
/*
思路:
1,将字符串变成数组
2,对数组反转
3,将数组变成字符串
*/
public static String reverseString(String s,int start,int end)
{
//字符串变数组
char[] chs = s.toCharArray();
//反转数组
reverse(chs,start,end);
//将数组变成字符串
return new String(chs);
}
public static String reverseString(String s)
{
//字符串变数组
char[] chs = s.toCharArray();
//反转数组
reverse(chs);
//将数组变成字符串
return new String(chs);
}
private static void reverse(char[] arr,int x,int y)
{
for(int start=x,end=y-1;start<end;start++,end--)
{
swap(arr,start,end);
}
}
private static void reverse(char[] arr)
{
for(int start=0,end=arr.length-1;start<end;start++,end--)
{
swap(arr,start,end);
}
}
private static void swap(char[] arr,int x,int y)
{
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
//练习一、去除字符串两端空格
public static String myTrim(String str)
{
int start = 0,end = str.length()-1;
while(start<=end && str.charAt(start)==' ')
start++;
while(start<=end && str.charAt(end)==' ')
end--;
return str.substring(start,end+1);
}
}
相关文章推荐
- String练习:数组格式拼接+数组反转
- C++(笔记)string,类的组合练习
- string练习拓展
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- 《day18_String练习_基本类型包装类_集合入门》
- NSMutableString练习
- String 的常用方法 练习 笔记
- Java的StringAPI的小练习
- 练习:求string语句中所有的数字和
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- JavaString练习2:对字符串中字符进行自然顺序排序
- C#-类-string/Manth/Random/DateTime-及练习
- 黑马程序员_String练习和基本数据类型包装类
- 30天C#基础巩固------面向鸭子编程,关于string和File的练习
- 30天C#基础巩固------了解委托,string练习
- uva 10391 Compound Words 习题5-5 (STL string、set练习)
- C++文本查询程序 定义类管理数据 用智能指针 用StrBlob代替vector<string> C++Primer 练习12.32
- Java——String练习1:将一个字符串"abcd_itcast"按照长度由长到短打印出来
- LeetCode Online Judge 题目C# 练习 - Scramble String
- 黑马程序员——JAVA练习——String、StringBuffer和StringBuilder