vue项目接口域名动态的获取方法
231
2023-06-13
java String类常用方法练习小结
String 类代表字符串。java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。
String 类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、
创建字符串副本并将所有字符全部转换为大写或小写。
String类是最常用的类之一,下面就通过几个练习,熟悉String类中的提供的重要方法。
字符串练习一
给定一个字符串数组,按照字典顺序,进行大小写排序
思路:
1.对数组排序,可以用选择排序、冒泡排序等等。
2.for循环嵌套,比较,交换位置。
3.不同之处,以前比较的是数字,用的是比较运算符;
现在比较的是字符串对象,应该使用compareTo方法。
public class StringTest_1
{
//对字符串数组进行排序
public static void stringSort(String[] arr)
{
//采用冒泡排序
for(int i=0;i { for(int j=0;j { //用compareTo方法进行字符串比较 if(arr[j].compareTo(arr[j+1])>0) { String temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } showArray(arr); } //定义方法,以[str1,str2,str3]的格式来打印数组 public static void showArray(String[] arr) { System.out.print("["); for(int i=0;i { if(i!=arr.length-1) System.out.print(arr[i]+","); else { System.out.print(arr[i]+"]\n"); } } } public static void main(String[] args) { String arr[]={"nba","abc","cba","zz","qq","haha"}; //打印数组 showArray(arr); //对数组进行排序并输出 stringSort(arr); } } 运行: 字符串练习二 一个子串在字符串中出现的次数 思路: 1.用indexOf方法获取子串在字符串中第一次出现的位置index 2.再用indexOf方法获取以(index+子串长度)为起始的剩下的字符串中子串出现的位置,直到字符串中不再包含子串。可用while循环实现。 3.每次找到后用计数器记录即可。 public class StringTest_2 { public static void main(String[] args) { String str="abcqwabcedcxabcuabcjkabcnmbabc"; //String str=null; try { int count=countChildStr(str,"abc"); System.out.println("abc在"+str+"中出现的次数为:"+count); } catch (NullPointerException ne) { Systhttp://em.out.println(ne); } catch(RuntimeException re) { System.out.println(re); } } public static int countChildStr(String str,String key) { if(str==null||key==null) { throw new NullPointerException("空指针异常,源字符串和子串都不能为NULL"); } if(key=="") {throw new RuntimeException("调用不合法,子串要有内容");} int count=0,index=0; while((index=str.indexOf(key,index))!=-1) { count++; index+=key.length(); } return count; } } 字符串练习三 找到两个字符串的最大公共子串 思路: 1.判断较长字符串中是否包含较短字符串,如果包含,则较短字符串则为最大公共子串。 2.如果不包含,就对较短字符串以长度递减的方式取子串,去较长字符串中判断是否包含,如果包含就找到了,不用再找了。 3.重点:对字符串以长度递减的方式取子串 public class StringTest_3 { public static void main(String[] args) { //创建两个不为空的字符串 String str1="abxczwsxcvdfas"; //String str1=null; String str2="ghwsxcvxcdbgthnnnrfqwe"; try { String str=searchMaxCommonStr(str1,str2); System.out.println("最大公共子串是:"+str); } catch (NullPointerException ne) { System.out.println(ne); } } public static String searchMaxCommonStr(String str1,String str2) { if(str1==null||str2==null) throw new NullPointerException("空指针异常,参数不能为Null"); //断定较长字符串和较短字符串 String max=(str1.length()>str2.length())?str1:str2; String min=(str1.equals(max))?str2:str1; //按长度递减的方式取子串,从min.length~~1 for(int i=min.length();i>0;i--) { for(int x=0,y=x+i;y { String childStr=min.substring(x,y); //若较长字符串中包含此子串,则找到了 //否则继续找 if(max.contains(childStr)) return childStr; } } return null; } } 运行: 字符串练习四 写一个和trim功能相同的方法 思路: 1.定义两个变量,用来存储两个角标 2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符 3.截取字符串 public class StringTest_4 { public static void main(String[] args) { String str=" abc ws "; str=myTrim(str); System.out.println(str); } public static String myTrim(String s) { int begin=0,end=s.length()-1; //从头遍历 while(begin<=end && s.charAt(begin)==' ') { begin++; } //从尾部遍历 while(begin<=end && s.charAt(end)==' ') { end--; } return s.substring(begin,end+1); } } 运行:
{
for(int j=0;j { //用compareTo方法进行字符串比较 if(arr[j].compareTo(arr[j+1])>0) { String temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } showArray(arr); } //定义方法,以[str1,str2,str3]的格式来打印数组 public static void showArray(String[] arr) { System.out.print("["); for(int i=0;i { if(i!=arr.length-1) System.out.print(arr[i]+","); else { System.out.print(arr[i]+"]\n"); } } } public static void main(String[] args) { String arr[]={"nba","abc","cba","zz","qq","haha"}; //打印数组 showArray(arr); //对数组进行排序并输出 stringSort(arr); } } 运行: 字符串练习二 一个子串在字符串中出现的次数 思路: 1.用indexOf方法获取子串在字符串中第一次出现的位置index 2.再用indexOf方法获取以(index+子串长度)为起始的剩下的字符串中子串出现的位置,直到字符串中不再包含子串。可用while循环实现。 3.每次找到后用计数器记录即可。 public class StringTest_2 { public static void main(String[] args) { String str="abcqwabcedcxabcuabcjkabcnmbabc"; //String str=null; try { int count=countChildStr(str,"abc"); System.out.println("abc在"+str+"中出现的次数为:"+count); } catch (NullPointerException ne) { Systhttp://em.out.println(ne); } catch(RuntimeException re) { System.out.println(re); } } public static int countChildStr(String str,String key) { if(str==null||key==null) { throw new NullPointerException("空指针异常,源字符串和子串都不能为NULL"); } if(key=="") {throw new RuntimeException("调用不合法,子串要有内容");} int count=0,index=0; while((index=str.indexOf(key,index))!=-1) { count++; index+=key.length(); } return count; } } 字符串练习三 找到两个字符串的最大公共子串 思路: 1.判断较长字符串中是否包含较短字符串,如果包含,则较短字符串则为最大公共子串。 2.如果不包含,就对较短字符串以长度递减的方式取子串,去较长字符串中判断是否包含,如果包含就找到了,不用再找了。 3.重点:对字符串以长度递减的方式取子串 public class StringTest_3 { public static void main(String[] args) { //创建两个不为空的字符串 String str1="abxczwsxcvdfas"; //String str1=null; String str2="ghwsxcvxcdbgthnnnrfqwe"; try { String str=searchMaxCommonStr(str1,str2); System.out.println("最大公共子串是:"+str); } catch (NullPointerException ne) { System.out.println(ne); } } public static String searchMaxCommonStr(String str1,String str2) { if(str1==null||str2==null) throw new NullPointerException("空指针异常,参数不能为Null"); //断定较长字符串和较短字符串 String max=(str1.length()>str2.length())?str1:str2; String min=(str1.equals(max))?str2:str1; //按长度递减的方式取子串,从min.length~~1 for(int i=min.length();i>0;i--) { for(int x=0,y=x+i;y { String childStr=min.substring(x,y); //若较长字符串中包含此子串,则找到了 //否则继续找 if(max.contains(childStr)) return childStr; } } return null; } } 运行: 字符串练习四 写一个和trim功能相同的方法 思路: 1.定义两个变量,用来存储两个角标 2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符 3.截取字符串 public class StringTest_4 { public static void main(String[] args) { String str=" abc ws "; str=myTrim(str); System.out.println(str); } public static String myTrim(String s) { int begin=0,end=s.length()-1; //从头遍历 while(begin<=end && s.charAt(begin)==' ') { begin++; } //从尾部遍历 while(begin<=end && s.charAt(end)==' ') { end--; } return s.substring(begin,end+1); } } 运行:
{
//用compareTo方法进行字符串比较
if(arr[j].compareTo(arr[j+1])>0)
{
String temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
showArray(arr);
}
//定义方法,以[str1,str2,str3]的格式来打印数组
public static void showArray(String[] arr)
{
System.out.print("[");
for(int i=0;i { if(i!=arr.length-1) System.out.print(arr[i]+","); else { System.out.print(arr[i]+"]\n"); } } } public static void main(String[] args) { String arr[]={"nba","abc","cba","zz","qq","haha"}; //打印数组 showArray(arr); //对数组进行排序并输出 stringSort(arr); } } 运行: 字符串练习二 一个子串在字符串中出现的次数 思路: 1.用indexOf方法获取子串在字符串中第一次出现的位置index 2.再用indexOf方法获取以(index+子串长度)为起始的剩下的字符串中子串出现的位置,直到字符串中不再包含子串。可用while循环实现。 3.每次找到后用计数器记录即可。 public class StringTest_2 { public static void main(String[] args) { String str="abcqwabcedcxabcuabcjkabcnmbabc"; //String str=null; try { int count=countChildStr(str,"abc"); System.out.println("abc在"+str+"中出现的次数为:"+count); } catch (NullPointerException ne) { Systhttp://em.out.println(ne); } catch(RuntimeException re) { System.out.println(re); } } public static int countChildStr(String str,String key) { if(str==null||key==null) { throw new NullPointerException("空指针异常,源字符串和子串都不能为NULL"); } if(key=="") {throw new RuntimeException("调用不合法,子串要有内容");} int count=0,index=0; while((index=str.indexOf(key,index))!=-1) { count++; index+=key.length(); } return count; } } 字符串练习三 找到两个字符串的最大公共子串 思路: 1.判断较长字符串中是否包含较短字符串,如果包含,则较短字符串则为最大公共子串。 2.如果不包含,就对较短字符串以长度递减的方式取子串,去较长字符串中判断是否包含,如果包含就找到了,不用再找了。 3.重点:对字符串以长度递减的方式取子串 public class StringTest_3 { public static void main(String[] args) { //创建两个不为空的字符串 String str1="abxczwsxcvdfas"; //String str1=null; String str2="ghwsxcvxcdbgthnnnrfqwe"; try { String str=searchMaxCommonStr(str1,str2); System.out.println("最大公共子串是:"+str); } catch (NullPointerException ne) { System.out.println(ne); } } public static String searchMaxCommonStr(String str1,String str2) { if(str1==null||str2==null) throw new NullPointerException("空指针异常,参数不能为Null"); //断定较长字符串和较短字符串 String max=(str1.length()>str2.length())?str1:str2; String min=(str1.equals(max))?str2:str1; //按长度递减的方式取子串,从min.length~~1 for(int i=min.length();i>0;i--) { for(int x=0,y=x+i;y { String childStr=min.substring(x,y); //若较长字符串中包含此子串,则找到了 //否则继续找 if(max.contains(childStr)) return childStr; } } return null; } } 运行: 字符串练习四 写一个和trim功能相同的方法 思路: 1.定义两个变量,用来存储两个角标 2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符 3.截取字符串 public class StringTest_4 { public static void main(String[] args) { String str=" abc ws "; str=myTrim(str); System.out.println(str); } public static String myTrim(String s) { int begin=0,end=s.length()-1; //从头遍历 while(begin<=end && s.charAt(begin)==' ') { begin++; } //从尾部遍历 while(begin<=end && s.charAt(end)==' ') { end--; } return s.substring(begin,end+1); } } 运行:
{
if(i!=arr.length-1)
System.out.print(arr[i]+",");
else
{
System.out.print(arr[i]+"]\n");
}
}
}
public static void main(String[] args)
{
String arr[]={"nba","abc","cba","zz","qq","haha"};
//打印数组
showArray(arr);
//对数组进行排序并输出
stringSort(arr);
}
}
运行:
字符串练习二
一个子串在字符串中出现的次数
思路:
1.用indexOf方法获取子串在字符串中第一次出现的位置index
2.再用indexOf方法获取以(index+子串长度)为起始的剩下的字符串中子串出现的位置,直到字符串中不再包含子串。可用while循环实现。
3.每次找到后用计数器记录即可。
public class StringTest_2
{
public static void main(String[] args)
{
String str="abcqwabcedcxabcuabcjkabcnmbabc";
//String str=null;
try
{
int count=countChildStr(str,"abc");
System.out.println("abc在"+str+"中出现的次数为:"+count);
}
catch (NullPointerException ne)
{
Systhttp://em.out.println(ne);
}
catch(RuntimeException re)
{
System.out.println(re);
}
}
public static int countChildStr(String str,String key)
{
if(str==null||key==null)
{
throw new NullPointerException("空指针异常,源字符串和子串都不能为NULL");
}
if(key=="")
{throw new RuntimeException("调用不合法,子串要有内容");}
int count=0,index=0;
while((index=str.indexOf(key,index))!=-1)
{
count++;
index+=key.length();
}
return count;
}
}
字符串练习三
找到两个字符串的最大公共子串
思路:
1.判断较长字符串中是否包含较短字符串,如果包含,则较短字符串则为最大公共子串。
2.如果不包含,就对较短字符串以长度递减的方式取子串,去较长字符串中判断是否包含,如果包含就找到了,不用再找了。
3.重点:对字符串以长度递减的方式取子串
public class StringTest_3
{
public static void main(String[] args)
{
//创建两个不为空的字符串
String str1="abxczwsxcvdfas";
//String str1=null;
String str2="ghwsxcvxcdbgthnnnrfqwe";
try
{
String str=searchMaxCommonStr(str1,str2);
System.out.println("最大公共子串是:"+str);
}
catch (NullPointerException ne)
{
System.out.println(ne);
}
}
public static String searchMaxCommonStr(String str1,String str2)
{
if(str1==null||str2==null)
throw new NullPointerException("空指针异常,参数不能为Null");
//断定较长字符串和较短字符串
String max=(str1.length()>str2.length())?str1:str2;
String min=(str1.equals(max))?str2:str1;
//按长度递减的方式取子串,从min.length~~1
for(int i=min.length();i>0;i--)
{
for(int x=0,y=x+i;y { String childStr=min.substring(x,y); //若较长字符串中包含此子串,则找到了 //否则继续找 if(max.contains(childStr)) return childStr; } } return null; } } 运行: 字符串练习四 写一个和trim功能相同的方法 思路: 1.定义两个变量,用来存储两个角标 2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符 3.截取字符串 public class StringTest_4 { public static void main(String[] args) { String str=" abc ws "; str=myTrim(str); System.out.println(str); } public static String myTrim(String s) { int begin=0,end=s.length()-1; //从头遍历 while(begin<=end && s.charAt(begin)==' ') { begin++; } //从尾部遍历 while(begin<=end && s.charAt(end)==' ') { end--; } return s.substring(begin,end+1); } } 运行:
{
String childStr=min.substring(x,y);
//若较长字符串中包含此子串,则找到了
//否则继续找
if(max.contains(childStr))
return childStr;
}
}
return null;
}
}
运行:
字符串练习四
写一个和trim功能相同的方法
思路:
1.定义两个变量,用来存储两个角标
2.分别从头和尾遍历字符串,直到找到第一个不为空格的字符
3.截取字符串
public class StringTest_4
{
public static void main(String[] args)
{
String str=" abc ws ";
str=myTrim(str);
System.out.println(str);
}
public static String myTrim(String s)
{
int begin=0,end=s.length()-1;
//从头遍历
while(begin<=end && s.charAt(begin)==' ')
{
begin++;
}
//从尾部遍历
while(begin<=end && s.charAt(end)==' ')
{
end--;
}
return s.substring(begin,end+1);
}
}
运行:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~