8、字符串练习3
练习三:获取一个字符串在另一个字符串中出现的次数。
class StringTest{ public static void main(String[] args){ String str="abkkcdkkefkkskk"; sop("count="+getSubCount(str,"kk")); } public static int getSubCount(String str,String key){ int count=0; int index=0; while((index=str.indexOf(key))!=-1){ sop("str="+str); str=str.substring(index+key.length()); count++; } return count; } public static void sop(Object obj){ System.out.println(obj); } }
9、字符串练习4
练习四:获取两个字符串中最大相同子串,
并将短的那个串进行长度依次递减的子串打印
public static String getMaxSubString(String s1,String s2){ String max="",min=""; max=(s1.length()>s2.length())?s1:s2; min=(max==s1)?s2:s1; for(int x=0;x<min.length();x++){ for(int y=0,z=min.length()-x;z!=min.length()+1;y++,z++){ String temp=min.substring(y,z); //sop(temp); if(max.contains(temp)) return temp; } } return ""; }
10、StringBuffer(常见功能-添加
StringBuffer是字符串缓冲区。
是一个容器。
特点:
1,长度是可以变化的。
2,可以字节操作多个数据类型。
3,最终会通过toString方法变成字符创。
C create U update R read D delete
1,存储。
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
class StringBufferDemo { public static void main(String[] args) { method_add(); } public static void method_add()//存储 { StringBuffer sb=new StringBuffer(); StringBuffer sb1=sb.append(34); sb.append(true).append("abc"); sb.insert(1,"qq"); sop(sb.toString()); sop(sb1.toString()); } public static void sop(String str) { System.out.println(str); } }
11、StringBuffer(常见功能-删除和修改)
2,删除。
StringBuffer delete(start,end):删除缓冲区数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
3,获取。
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length()
String substring(int start,int end)
4,修改。
StringBuffer replace(start,end,string)
void setCharAt(int index,char ch);
5,反转
StringBuffer reverse()
6,查阅API
将缓冲区指定数据存储到指定字符数组中指定位置。
void getChars(int srcBegin,int srcEnd, char[] dst,int dstBegin)
class StringBufferDemo { public static void main(String[] args) { //method_update(); StringBuilder sb=new StringBuilder("abcdef") ; char[] chs=new char[6]; sb.getChars(1,4,chs,1); for(int x=0; x<chs.length; x++) { sop("chs["+x+"]="+chs[x]); } } public static void method_del()//删除 { StringBuffer sb=new StringBuffer("abcde"); //sb.delete(1,3); //sb.delete(0,sb.length()); //清空缓冲区。 sb.deleteCharAt(2); //sb.delete(2,3);//删除第三个字母 sop(sb.toString()); } public static void method_read() { } public static void method_update()//修改 { StringBuffer sb=new StringBuffer("abcde"); sb.replace(1,4,"java"); sb.setCharAt(2,'k'); sop(sb.toString()); } public static void sop(String str) { System.out.println(str); } }
12、StringBuilder
13、基本数据类型对象包转类
基本数据类型对象包装类。
byte Byte
short Short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用。
就是用于基本数据类型和字符串类型之间做转换
基本数据类型转成字符串。
基本数据类型+""
基本数据类型.toString(基本数据类型值);
如:Integer.toString(34);
字符串转成基本数据类型
xxx a=Xxx.parseXxx(String);
int a=Integer.parseInt("123");
double b=Double.parseDouble("12.23");
boolean b=Boolean.parseBoolean("true");
class IntegerDemo { public static void main(String[] args) { //sop("int max:"+Integer.MAX_VALUE); /* //将一个字符串转成整数,必须传入数字格式的字符串 int num=Integer.parseInt("123"); long x=Long.parseLong("123"); sop("num="+(num+4)); */ /*//十进制转换其它进制 sop(Integer.toBinaryString(-6)); sop(Integer.toHexString(60)); */ //其它进制转换十进制 int x=Integer.parseInt("110",2); sop("x="+x); } public static void sop(String str) { System.out.println(str); } }
14、基本数据类型对象包转类新特性
class IntegerDemo1 { public static void main(String[] args) { //Integer x=new Integer("123"); //Integer y=new Integer(123); //sop("x==y"+(x=y)); //sop("x.equals(y):"+x.equals(y)); int x=0; x=x+1; sop("x="+x); } public static void sop(String str) { System.out.println(str); } }