黑马程序员技术交流社区
标题:
【资源分享】看了毕老师的视频写的有关String的代码分享...
[打印本页]
作者:
蒙奇.D.路飞
时间:
2014-5-16 22:47
标题:
【资源分享】看了毕老师的视频写的有关String的代码分享...
本帖最后由 李小然 于 2014-5-17 10:54 编辑
public class StringTest1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(StringMethod.getCount("nbaernbatynbauklnbanbasrtnba","nba"));
System.out.println(StringMethod.myTrim(" ab c "));
System.out.println(StringMethod.sortString("bacedhgf"));
System.out.println(StringMethod.reverseString("sbc"));
}
}
//有关String方法的练习
class StringMethod{
//在长串中找字串出现的次数
public static int getCount(String str,String substr)
{
//从哪个角标开始查找
int fromIndex=0;
//定义一个计数器的变量
int count=0;
//如果角标不为零就循环
while((fromIndex=str.indexOf(substr, fromIndex))!=-1)
{
//改变查找的角标
fromIndex+=substr.length();
//若查到字串就自加
count++;
}
//返回计数器
return count;
}
//去除前后空白的方法
public static String myTrim(String str)
{
//1.去除空白 ,获取字符串的有效部分
//定义两个变量表示头尾
int start=0;
int end=str.length();
//判断是否为空白,是,头角标自加
while(start<=end && str.charAt(start)==' ')
{
start++;
}
//判断是否为空白,是,尾角标自减
while(start<=end&&str.charAt(end-1)==' ')
{
end--;
}
//返回字串从头角标不是空白开始到为角标不是空白为止。注,substring方法包含头角标不包含尾角标,所以尾角标要加1
return str.substring(start, end+1);
}
//为字符串排序的方法
public static String sortString(String str)
{
//把字符串转成字符数组
char[] ch=str.toCharArray();
//提出为字符数组排序的方法
sortCharArray(ch);
//把字符数组转成字符串
String str1=new String(ch);
//返回字符串
return str1;
}
//为字符数组排序的方法
private static void sortCharArray(char[] ch)
{
for(int i=0;i<ch.length;i++)
{
for(int j=i+1;j<ch.length;j++)
{
if(ch[i]>ch[j])
{
exchange(ch,i,j);
}
}
}
}
//将字符串反转的方法
public static String reverseString(String str)
{
char ch[]=str.toCharArray();
//反转字符串
reverse(ch);
String str1=new String(ch);
return str1;
}
private static void reverse(char[] ch) {
// TODO Auto-generated method stub
//需要头和尾交换所以定义头尾两个变量
int start=0;
int end=ch.length-1;
while(start<end)
{
exchange(ch,start,end);
start++;
end--;
}
}
//交换方法
private static void exchange(char[] a,int c, int d) {
// TODO Auto-generated method stub
char temp;
temp=a[c];
a[c]=a[d];
a[d]=temp;
}
}
复制代码
顺便问一下 我写的交换方法为什么private static void exchange(char a, char d)这样定义就不交换了呢?求解
作者:
skill20
时间:
2014-5-16 23:13
交换两个基本类型的变量,在栈内存中,你换来换去有啥意思,数组的又没变。
作者:
蒙奇.D.路飞
时间:
2014-5-16 23:28
哦哦 也就是说在数组中没有交换啊
作者:
赵京
时间:
2014-5-17 07:31
你这个最好写个题目,例如这个题目是要求做什么,如果没写,乍一看,不知道你这是在写什么代码,题目要求,还有题目前期分析写上,版主才有可能给你分的
作者:
蒙奇.D.路飞
时间:
2014-5-17 08:31
这个技术分真感觉难得啊 谢谢了
作者:
蒙奇.D.路飞
时间:
2014-5-17 15:58
赵京 发表于 2014-5-17 07:31
你这个最好写个题目,例如这个题目是要求做什么,如果没写,乍一看,不知道你这是在写什么代码,题目要求, ...
谢谢啊 我居然没看到回复,我还给自己回复了,糗大了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2