2018年4月2日作业练习整理
0.用StringBuilder将对字符串缓冲区的增删改查写一下
package Day0402hw; public class Test1 { public static void main(String[] args) { StringBuilder bu=new StringBuilder(); StringBuilder bu1=bu.append("张三").append("李四").append("王五"); //bu.delete(1, 4);//删除 bu.insert(2, "马六"); bu.replace(1, 4, "你好"); // bu.reverse();逆序 String a=bu.toString(); System.out.println(a); } }
1.用代码演示String类中的以下方法的用法
(1)boolean isEmpty(): 判断字符串是不是空串,如果是空的就返回true
package Day0402hw; public class Test2 { public static void main(String[] args) { // TODO Auto-generated method stub String str=""; boolean b=str.isEmpty(); System.out.println(b); } public boolean isEmpty(){ Test2 str = null; if(str.isEmpty()) { return true; }else{ return false; } } }
(2)char charAt(int index): 返回索引上的字符
package Day0402hw; public class Test3 { public static void main(String args[]) { String a = "锄禾日当午汗滴禾下土"; char b = a.charAt(8); System.out.println(b); } }
(3)String toLowerCase(): 字符串转成小写
package Day0402hw; public class Test4 { public static void main(String[] args) { // TODO Auto-generated method stub String s="ABCDEFG"; String f=s.toLowerCase(); System.out.println(f); } }
(4)String toUpperCase(): 字符串转成大写
package Day0402hw; public class Test4 { public static void main(String[] args) { // TODO Auto-generated method stub String s="abcdefg"; String f=s.toUpperCase(); System.out.println(f); } }
(5)String repalce(char oldChar, char newChar): 将字符串中的老字符,替换为新字符
String s="你好java"; String f=s.replace('你', '我'); System.out.println(f);
(6)String repalce(String old, String newstr): 将字符串中的老字符串,替换为新字符串
package Day0402hw; public class Test5 { public static void main(String[] args) { String s2="你好java"; String f1=s2.replace("你好", "我是"); System.out.println(f1); } }
(7)String trim(): 去掉字符串两端空格
package Day0402hw; public class Test5 { public static void main(String[] args) { String s="你好java"; String f=s.replace('你', '我'); System.out.println(f); String s2=" \t你好java\t "; String f1=s2.replace("你好", "我是"); String f2=s2.trim(); System.out.println(f2); } }
2.分析以下需求,并用代码实现:
(1)定义如下方法public static String getPropertyGetMethodName(String property);
(2)该方法的参数为String类型,表示用户给定的成员变量的名字,返回值类型为String类型,返回值为成员变量对应的get方法的名字
(3)如:用户调用此方法时给定的参数为"name",该方法的返回值为"getName"
package Day0402hw; public class Test06 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(getPropertyGetMethodName("age")); } public static String getPropertyGetMethodName(String property) { return "get"+property.substring(0, 1).toUpperCase()+property.substring(1); } }
3.分析以下需求,并用代码实现:
(1)定义数字字符串数组{"010","3223","666","7890987","123123"}
(2)判断该数字字符串数组中的数字字符串是否是对称(第一个数字和最后一个数字相等,第二个数字和倒数第二个数字是相等的,依次类推)的,并逐个输出
(3)如:010 是对称的,3223 是对称的,123123 不是对称的
(4)最终打印该数组中对称字符串的个数
提示:循环获取字符串的每一个字符,依次比较第一个和最后一个,第二个和倒数第二个。。。
package Day0402hw; public class Test06 { public static void main(String[] args) { // TODO Auto-generated method stub String[] arr= {"010","3223","666","7890987","123123"}; int length = arr.length; int count = 0; for (int i = 0; i < length; i++) { int k = arr[i].length(); boolean stau = true; //将字符串转化为字符数组 char[] as = arr[i].toCharArray(); for (int j = 0; j <= k/2; j++) { if (as[j] != as[k-j-1]) { System.out.println("字符串\"" + arr[i] + "\"不是对称字符串"); stau = false; break; } } if (stau) { System.out.println("字符串\"" + arr[i] + "\"是对称字符串"); count++; } }System.out.println("对称的字符串有:"+count+"个"); } }
4.分析以下需求,并用代码实现:
(1)从键盘循环录入录入一个字符串,输入"end"表示结束
(2)将字符串中大写字母变成小写字母,小写字母变成大写字母,其它字符用"*"代替,并统计字母的个数
举例:
键盘录入:Hello12345World
输出结果:hELLO*****wORLD
总共10个字母
package Day0402hw; import java.util.Scanner; public class Test7 { public static void main(String[] args){ int count=0; Scanner sc=new Scanner(System.in); System.out.println("请输入一句英文:"); String str=sc.next(); char[] c1=str.toCharArray(); for(int i=0;i<c1.length;i++){ if (c1[i]>='A' && c1[i]<='Z') { c1[i]+=32; count++; } else if (c1[i]>='a' && c1[i]<='z') { c1[i]-=32; count++; } else { c1[i]='*'; } }System.out.println(c1); System.out.println("总共"+count+"个字母"); } }
5.分析以下需求,并用代码实现:
(1)从键盘循环录入录入一个字符串,输入"end"表示结束
(2)定义一个方法
public Object[] deleteSubString(String str1,String str2) {
}
(3)方法功能描述:从str1中删除所有的str2,并返回删除后的结果,返回结果为Object[]数组
* 该数组的第一个元素为删除所有的str2后的最终的字符串
* 该数组的第二个元素为删除的str2的个数
package Day0402hw; import java.util.Scanner; public class Diwuti { public static void main(String[] args) { String str1=input(); String str2=input(); Object[] obj=deleteSubString(str1,str2); String str=(String)obj[0]; int count=(Integer)obj[1]; System.out.println(str+count); } public static Object[] deleteSubString(String str1,String str2) { StringBuffer s=new StringBuffer(); s.append(str1); int count=0; while(s.indexOf(str2)!=-1){ s.delete(s.indexOf(str2), s.indexOf(str2)+str2.length()); count++; } Object[] obj={s.toString(),count}; return obj; } public static String input(){ Scanner sc=new Scanner(System.in); StringBuffer s=new StringBuffer(); System.out.println("请输入一个字符串(以end结尾)"); while(true){ String str=sc.next(); if(str.endsWith("end")){ break; }else{ s.append(str); } } return s.toString(); } }