String类(2)

来源:互联网 发布:雨课堂教学软件 编辑:程序博客网 时间:2024/04/28 18:08

现在我们就来介绍一下String类的一些常用方法。
首先先介绍一下String类的构造方法:


通过API文档大家可以看到,String类的构造方法甚多啊,在此Endeavor选择了一些和大家交流交流:
1)String() 创建一个空内容 的字符串对象。
2)String(byte[] bytes) 使用一个字节数组构建一个字符串对象
3)String(byte[] bytes, int offset, int length)
————bytes : 要解码的数组
————offset: 指定从数组中那个索引值开始解码。
————length: 要解码多个元素。
4)String(char[] value) 使用一个字符数组构建一个字符串。
5)String(char[] value, int offset, int count) 使用一个字符数组构建一个字符串, 指定开始的索引值,与使用字符个数。
6)String(int[] codePoints,int offset,int count)
7)String(String original)

以上就是String类的全部构造方法了。
记住: 使用字节数组或者字符数组都可以构建一个字符串对象

接下来说说,String类的方法
1)获取方法:
a)int length() 获取字符串的长度。
b)char charAt(int index) 获取特定位置的字符 (角标越界)。
c)int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现 在字符串中,那么则返回-1表示。
d)int lastIndexOf(String str) 查找子串最后一次出现的索引值 , 如果子串没有出现 在字符串中,那么则返回-1表示。

2)判断方法
a)boolean endsWith(String str) 是否以指定字符结束。
b)boolean isEmpty()是否长度为0 ,讨论三种情况:有值、“”、 null。

c)boolean contains(CharSequences) 是否包含指定序列,应用:搜索。
d)boolean equals(Object anObject) 是否相等。
e)boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等。
3)转换方法
a)char[] toCharArray() 将字符串转换为字符数组。
b)byte[] getBytes() 将字符串转换为字节数组

4)其他方法
a)String replace(String oldChar, String newChar) 替换。
b)String[] split(String regex) 切割。
c)String substring(int beginIndex) 指定开始的索引值截取子串。
d)String substring(int beginIndex, int endIndex) 指定开始 与结束的索引值截取子串。
e)String toUpperCase() 转大写。
f)String toLowerCase() 转小写。
d)String trim() 去除字符串首尾的空格。

扩展:自己定义一个trim()方法,提供给大家代码。

import java.util.Arrays;public class Demo{        public static void main(String[] args){        String str = "  java  ";        MyTrim(str);        }        //自定义一个Trim()方法——MyTrim()方法        public static void MyTrim(String str){        char[] c = str.toCharArray();        int startIndex = 0;        int endIndex = c.length-1;      //注意元素从零开始要减一        while(true){            if(c[startIndex] == ' '){                startIndex++;            }else{                break;            }            if(c[endIndex] == ' '){                endIndex--;            }else{                break;            }        }        for(int i = startIndex;i<=endIndex;i++){            System.out.print(c[i]+",");        }    }}

综合应用:

/*需求1:自己实现trim的方法。需求2:获取上传文件名  "D:\\20120512\\day12\\Demo1.java"。需求3:将字符串对象中存储的字符反序。    新中国好-->好国中新需求4:求一个子串在整串中出现的次数。 */public class Demo1{    public static void main(String[] args) {        String str  ="        传智        播客             ";           System.out.println(myTrim(str));        str =  "D:\\20120512\\day12\\Demo1.java";        getFileName(str);        str = "新中国好";        System.out.println("翻转后的字符串:"+ reverse(str));        str = "abcjavaabcjavaphpjava";  //java        getCount(str, "java");      }    //需求4:统计子串出现的次数    public static void getCount(String str,String target){        int count = 0 ; //用于记录出现的次数        int fromIndex  = 0; // 记录从那个索引值开始寻找目标子串        while((fromIndex = str.indexOf(target, fromIndex))!=-1){            //如果indexof方法返回的不是-1,那么就是已经找到了目标 元素。            count++;            fromIndex = fromIndex+target.length();        }        System.out.println("出现的次数:"+ count);    }    //需求3:将字符串对象中存储的字符反序。    public static String reverse(String str){        char[] arr = str.toCharArray();        for(int startIndex = 0 , endIndex=arr.length-1 ; startIndex<endIndex; startIndex++,endIndex--){                char temp = arr[startIndex];                arr[startIndex] = arr[endIndex];                arr[endIndex] = temp;        }        //使用字符数组构建一个字符串。        return new String(arr);    }    //需求2: 获取上传文件名为"D:\\20120512\\day12\\Demo1.java"。    public static void getFileName(String path){        int index = path.lastIndexOf("\\");        String fileName = path.substring(index+1);        System.out.println("文件名:"+ fileName);    }    //需求1:自己实现trim的方法。    public static String myTrim(String str){        //先转换成字符数组        char[] arr = str.toCharArray();        //定义两个变量记录开始与结束 的索引值        int startIndex = 0 ;        int endIndex = arr.length -1;        //确定开始的索引值        while(true){            if(arr[startIndex]==' '){                startIndex++;            }else{                break;            }        }        //确定结束的索引值:        while(true){            if(arr[endIndex]==' '){                endIndex--;            }else{                break;            }        }        //截取子串返回        return str.substring(startIndex,endIndex+1);            }}
1 0
原创粉丝点击