Lesson_for_java_day12--String类的五个练习题
来源:互联网 发布:天刀捏脸详细数据 编辑:程序博客网 时间:2024/05/01 01:14
练习一:
package string.test;/*目的:写个程序,去除字符串两端的空格思路:1、判断字符串第一个位置是否是空格,如果是继续向下判断,直到不是空格为止。结束处判断空格也是如此。 2、当开始和结尾都判断到不是空格时,就是要获取的字符串。步骤:1、创建一个类 2、创建一个方法,判断首位非空格处。 3、创建一个输出打印方法。 4、创建一个主函数,输入任意一个字符串,验证结果。*/class StringTest{public static void sop(String str){System.out.println(str);}public static String myTrim(String str){int start = 0;int end = str.length()-1;while(start <= end && str.charAt(start) == ' ')start++;while(end >= start && str.charAt(end) == ' ' )end--;return str.substring(start,end +1);}public static void main(String [] args){String s = " dlsj diid kds ";sop("(" + s + ")");s = myTrim(s);sop("(" + s + ")");}}练习二:
package string.test;/*目的:将一个字符串进行反转,将字符串中指定部分进行反转。思路:1、曾经学习过对数组的元素进行反转。 2、将字符串变成数组,对数组反转。 3、将反转后的数组变成字符串。 4、只要将反转的部分的开始和结束位置作为参数传递即可。*/class StringTest2{public static String turnString(String str,int start,int end){char ch;String beginString;String tranform;String endString;if(start != 0)beginString = str.substring(0,start);else beginString ="";tranform = str.substring(start,end);if(end != str.length())endString = str.substring(end,str.length());else endString = "";char[] cha = tranform.toCharArray();for(int i = 0; i<=cha.length/2; i++){ch = cha[i];cha[i] = cha[cha.length-1-i];cha[cha.length-1-i] = ch;}tranform = new String(cha);return beginString + tranform + endString;}public static void main(String args []){String s = "abcdefg";System.out.println(s);s = turnString(s,2,5);System.out.println(s);}}练习三:
package string.test;/*目的:获取一个字符串在另一个字符串中出现的次数."abkkcdkkefkkskk"思路:1、定义个计数器。2、获取kk第一次出现的位置。3、从第一个出现位置后剩余的字符串中继续获取kk出现的位置。4、当获取不到时,计数完成。*/class StringTest3{public static void main(String[] args){String s = "abkkcdkkefkkskk";int count = getSubCount(s,"kk");System.out.println("kk出现的次数为:" + count);}public static int getSubCount(String s, String key){int count = 0;int index = s.indexOf("kk");while(index != -1){count++;index = s.indexOf("kk",index + key.length());}return count;}}练习四:
package string.test;/*目的:获取两个字符串中最大相同子串,第一个动作:将短的那个串进行长度依次递减的子串打印。"abcwerthelloyuiodef" "cvhellobnm"思路:1、将短的那个子串按照长度递减的方式获取。2、将每获取到的子串去长串中判断是否包含,如果包含,已经找到。*/class StringTest4{public static void main(String[] args){String s1 = "abcwerthelloyuiodef";String s2 = "cvhellobnm";String s = getLongSubstring(s1, s2);if(s == "")System.out.println("没有共同子串");elseSystem.out.println("两字符串的最大共同子串是:" + s);}//获取两字符串中最大共同子串private static String getLongSubstring(String s1, String s2){//判断两字符串的长串和短串String sMax, sMin;if(s1.length() <= s2.length()){sMin = s1;sMax = s2;}else{sMin = s2;sMax = s1;}//定义循环,对字符串进行判断(用短字符串比较长字符串)int end = sMin.length()-1;int start = 0;for(String sub ; end >= start ; end-- ){//每循环完一次,字符串长度减一//用固定长度的子串,从0位开始与长串字符进行比较,每次循环向前增加一位for(int i = start,e = end; e <= sMin.length()-1; i++,e++){sub = sMin.substring(i,e+1);if(sMax.contains(sub)) return sub;}}return "";}}
练习五:
package sonyi.exercise;/*练习:定义一个字符串 str = "a,b,c;d,e,f,g;h,i,j,k,l"; 把此字符串拆分成一个二维数组的字符串,并打印出来格式如下(3行): 用方法split() a b c d e f g h i j k l */public class Exercise3 {public static void main(String[] args) {// TODO Auto-generated method stubString s = "a,b,c;d,e,f,g;h,i,j,k,l";String[] row = s.split(";");//对字符串进行第一次切割String[][] array = new String[row.length][];//开辟二维字符串数组行空间for(int i = 0; i < row.length; i++){array[i] = row[i].split(",");}/*for(int i = 0; i < row.length; i++){//遍历第一次切割后的字符串数组String[] col = row[i].split(",");//对字符串进行第二次切割array[i] = new String[col.length];//开辟二维字符串数组列空间for(int j = 0; j < col.length; j++){//遍历第二次切割后的字符串数组//System.out.print(col[j] + " ");//打印数组元素array[i][j] = col[j];//将数组元素赋值给二维字符串数组}}*///打印二维字符串数组for(int i = 0; i < array.length; i++){for(int j = 0; j < array[i].length; j++){System.out.print(array[i][j] + " ");}System.out.println();}}}
0 0
- Lesson_for_java_day12--String类的五个练习题
- Lesson_for_java_day12--java的常用类——String类
- Java String类练习题
- 类的继承练习题
- 类的继承练习题
- java练习题---String类之求给定字符串中大小写字母的个数
- 五个简单的工具类
- 黑马程序员,String练习题
- 黑马程序员:String练习题
- 黑马程序员: String练习题
- 下面是毕老师给出的四道String 练习题:
- python3练习题--判断字符类型--string函数的应用
- Python练习题 类的继承
- java 练习题 String运算符+
- String重点、练习题及解答
- Lucene 五个基础的类初探
- MFC中五个初始类的作用
- Cocos2d-x的五个主导类
- IOS-本地存储-NSUserDefaults
- Unite2014大会的一些笔记
- HTTP协议知识
- NYOJ244十六进制的简单运算
- [leetcode]Jump Game I II
- Lesson_for_java_day12--String类的五个练习题
- poj2425
- 转载:c++开源机器学习库(更新中20140330)
- 操作系统作业
- ARM Timer Watchdog
- Java中时间的计算 年月日小时分钟秒毫秒微秒
- ipa有些手机能装有些手机不能装
- java内省机制
- 静态变量没有重置为 null 的问题