1.重新编写strim方法,去掉字符串两端的空格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package www.shangguigu.java.exer; import org.junit.Test; /* 练习一:重写Strim方法,输入一个字符串,去掉两端的空格 */ public class StringDemo { @Test // 测试1: public void test1(){ String str = " wangqin wo aini! " ; //String str = " "; //只有空格的字符串时,理论上是不打印,但是会出现空指针异常,加上 String newStr = StringDemo.MyStrim(str); System.out.println(newStr); } //练习一: public static String MyStrim(String str){ int start = 0 ; int end = str.length()- 1 ; while (start<=end && str.charAt(start)== ' ' ){ start++; } while (start<=end &&str.charAt(end)== ' ' ){ end--; } String strimStr = str.substring(start,end+ 1 ); return strimStr; } |
2.对字符串进行反转,例如“abcdefg”,反转成为“abfedcg”
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | package www.shangguigu.java.exer; import org.junit.Test; /* 练习二:将一个字符串进行反转。将字符串的一部分进行反转,比如讲“abcdefg"反转为”abfedcg". 练习三: */ public class StringDemo { @Test public void test2(){ String str = "abcdefg" ; String revStr1 = StringDemo.reverseString1(str, 2 , 5 ); System.out.println(revStr1); String revStr2 = StringDemo.reverseString2(str, 2 , 5 ); System.out.println(revStr2); } //练习二:方法一:使用截取字符串的方式 public static String reverseString1(String str, int start, int end){ String str1 = str.substring( 0 ,start); String str2 = str.substring(end+ 1 ); for ( int i=end;i>=start;i--){ char c = str.charAt(i); str1 += c; } str1 += str2; return str1; } //练习二:方法二:通过将字符串转发成字符数组,在进行反转操作,最后在将字符数组转换成字符串 public static String reverseString2(String str, int start , int end){ char [] strArray = str.toCharArray(); return reverseCharArray(strArray,start,end); } public static String reverseCharArray( char [] strArray, int start, int end){ for ( int i=start,j=end;i<end;i++,j--){ char temp = strArray[i]; strArray[i] = strArray[j]; strArray[j] = temp; } return new String(strArray); } |
3.获取一个字符串在另一个在字符串中出现的次数。例如:
1 | :获取“ab”在 “abkkcadkabkebfkabkskab”中出现的次数 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package www.shangguigu.java.exer; import org.junit.Test; /* 练习三:获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkabkskab”中出现的次数 */ public class StringDemo { @Test public void test3(){ String str1 = "abcab3fabkkkabddcadl" ; String str2 = "ab" ; int count = StringDemo.getTime(str1, str2); System.out.println(count); } //练习3:获取一个字符串在另一个字符串中出现的次数。获取str2在str1中出现的次数 public static int getTime(String str1,String str2){ int count = 0 ; int len; while ((len=str1.indexOf(str2))!=- 1 ){ //str1.indexof(str2) 判断str2在str1中首次出现的位置 count++; str1 = str1.substring(len + str2.length()); } return count; } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 开发的设计和重构,为开发效率服务
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 从零开始开发一个 MCP Server!
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时