字符串的方法,字符串的练习,StringBuffer

获取方法:

  int length()  获取字符串的长度

  char charAt(int index)  获取特定位置的字符(角度越界)

  int indexOf(String str)  查找子串第一次出现的索引值,如果子串没有出现在字符串中,那么则返回-1表示。

  int lstlndexOf(String str)  查找子串最后一次出现的索引值,如果子串没有出现在字符串中那么则返回-1表示

代码演示:

 

package aa.aa;

public class Demo06 {
public static void main(String[] args) {
String str = "abc中国按中国";
System.out.println("字符串的字符个数:"+str.length());
System.out.println("根据索引值获取对应的字符:"+str.charAt(3));
System.out.println("查找子串第一次出现的索引值:"+str.indexOf("中国"));
System.out.println("查找子串最后一次出现的索引值:"+str.lastIndexOf("中国"));
}
}

 运行结果:

字符串的方法,字符串的练习,StringBuffer

 

 判断方法:

  boolean endsWith(String str)  是否以指定字符结束

  boolean isEmpty()  是否长度为0

  boolean contains(charSequence)  是否包含指定序列  应用:搜索

  boolean equals(Object anObject)  是否相同

  boolean equalslgnore(String anotherString)  忽略大小写是否相等

转换方法:

  char[] toCharArray()  将字符串转换为字符数组

  byte[]  getBytes();  把字符串装换字节数组

代码演示:

package aa;

import java.util.Arrays;

public class Demo05 {
public static void main(String[] args) {
String str = "Demo.java";
System.out.println("是否以指定的字符结束:"+str.endsWith("java"));
System.out.println("判断字符串是否为空内容:"+str.isEmpty());
System.out.println("判断字符串是否包含指定的内容:"+str.contains("Demo"));
System.out.println("判断两个字符串的内容是否一致:"+"DEMO.JAVA".equals(str));
System.out.println("判断两个字符串的内容是否一致(忽略大小写):"+"DEMO.JAVA".equalsIgnoreCase(str));
//转换的方法
char[] buf = str.toCharArray();
System.out.println("字符串组:"+ Arrays.toString(buf));
byte[] buf2 = str.getBytes();
System.out.println("字节数组:"+Arrays.toString(buf2));
}
}
运行结果:

字符串的方法,字符串的练习,StringBuffer

 需求1:自己实现trim方法。

代码演示:

public class Demo07 {
public static void main(String[] args) {
String str = " 传奇 博客 ";
System.out.println(myTrinm(str));
}
public static String myTrinm(String str){
char[] arr = str.toCharArray();
int startindex = 0;
int ecdindex = arr.length-1;
while (true){
if (arr[startindex]==' '){
startindex++;
}else {
break;
}
}
while (true){
if (arr[ecdindex]==' '){
ecdindex--;
}else {
break;
}
}
return str.substring(startindex,ecdindex+1);
}
}
运行结果:

字符串的方法,字符串的练习,StringBuffer

 

 需求2: 获取上传文件名  "D:\\20120512\\day12\\Demo1.java"。

代码演示:

public class Demo08 {
public static void main(String[] args) {
String str = " D:\\20120512\\day12\\Demo1.java";
getFileName(str);
}
public static void getFileName(String path){
int index = path.lastIndexOf("\\");
String fileName = path.substring(index+1);
System.out.println("文件名:"+fileName);

}
}
运行结果:

字符串的方法,字符串的练习,StringBuffer

 

 需求三:将字符串对象中存储的字符反序。    新中国好

代码演示:

public class Demo08 {
public static void main(String[] args) {
String str = "新中国好";
System.out.println(reverse(str));
}
public static String reverse(String str){
char[] arr = str.toCharArray();
for (int startlndex = 0,ecdlndex = arr.length-1;startlndex<ecdlndex;startlndex++,ecdlndex--){
char temp = arr[startlndex];
arr[startlndex] = arr[ecdlndex];
arr[ecdlndex] = temp;
}
return new String(arr);
}
}
运行结果:

字符串的方法,字符串的练习,StringBuffer

 

 字符串的特点:字符串是常量,它们的值在创建之后就不能更改。

字符串的内容一旦发生变化那么马上会创建一个新的对象。

注意:字符串的内容不适宜频繁修改,因为一旦修改马上就会创建一个新的对象。

如果需要频繁修改字符串内容,建议使用字符串缓冲类(StringBuffer)。

StringBuffer其实是一个存储字符的容器。

代码演示:

public class Demo08 {
public static void main(String[] args) {
String str1 = "hello";
String str2 = str1+"world";
System.out.println("str1与str2是同一个对象吗?"+(str1==str2));
}
}
运行结果:

字符串的方法,字符串的练习,StringBuffer

 

 

如果需要频繁修改字符串内容,建议使用字符串缓冲类(StringBuffer)。

StringBuffer其实是一个存储字符的容器。

笔试题目:使用StringBuffer无惨的构造函数创建一个对象时,默认的初容量是多少?自动增长多少倍?

  StringBuffer 底层是依赖了一个字符数组才能存储字符数据 的,该字符串数组默认 的初始容量是16, 如果字符数组的长度不够使用 死,自动增长1倍。

容器的具备行为:

  增加

  删除

  修改

  查看

  判断

代码演示:

 

public class Demo08 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("java");
sb.append("java");
sb.append("java");
sb.append("java");
sb.append("java");
System.out.println(sb);
}
}
运行结果:

字符串的方法,字符串的练习,StringBuffer

 

上一篇:github 上传文件


下一篇:gz文件压缩、解压缩保留源文件