java-String字符串类

来源:互联网 发布:香港域名注册不备案 编辑:程序博客网 时间:2024/06/06 00:14

java-String字符串类

实例1:

/* 笔试题目:new String("abc")创建了几个对象?      两个对象, 一个对象是 位于字符串常量池中,一个对象是位于堆内存中。 */public class Demo1 {    public static void main(String[] args) {        String str1 = "hello";        String str2 = "hello";        String str3 = new String("hello");        String str4 = new String("hello");        System.out.println("str1==str2?"+(str1==str2));  // true          System.out.println("str2==str3?"+(str2==str3));  //false        System.out.println("str3==str4?"+(str3==str4));  // false        System.out.println("str3.equals(str2)?"+(str3.equals(str4))); //true        //是String类重写了Object的equals方法,比较的是两个字符串对象 的内容 是否一致。        // "=="用于比较 引用数据类型数据的时候比较的是两个对象 的内存地址,equals方法默认情况下比较也是两个对象 的内存地址。        test(null);    }    public static void test(String str){        if("中国".equals(str))        {            System.out.println("回答正确");        }else{            System.out.println("回答错误");        }    }}/*str1==str2?truestr2==str3?falsestr3==str4?falsestr3.equals(str2)?true回答错误*/

实例2

/* String 的构造方法:    String()  创建一个空内容 的字符串对象。    String(byte[] bytes)  使用一个字节数组构建一个字符串对象    String(byte[] bytes, int offset, int length)         bytes :  要解码的数组        offset: 指定从数组中那个索引值开始解码。        length: 要解码多个元素。    String(char[] value)  使用一个字符数组构建一个字符串。      String(char[] value, int offset, int count)  使用一个字符数组构建一个字符串, 指定开始的索引值,与使用字符个数。    String(int[] codePoints,int offset,int count)    String(String original) 记住: 使用字节数组或者字符数组都可以构建一个字符串对象。 */public class Demo6 {    public static void main(String[] args) {        String str = new String();        byte[] buf = {97,98,99};        str = new String(buf); //使用一个字节数组构建一个字符串对象        System.out.println(str);        str = new String(buf,1,2);           //使用一个字节数组构建一个字符串对象,        //指定开始解码 的索引值和解码的个数。        System.out.println(str);        char[] arr = {'明','天','是','圣','诞'};        str = new String(arr); //使用字符数组构建一个字符串        str = new String(arr,3,2);        System.out.println(str);        int[]   buf2 = {65,66,67};        str = new String(buf2,0,3);        System.out.println(str);        str = new String("abc");        System.out.println("字符串的内容:"+str);    }}/*abcbc圣诞ABC字符串的内容:abc*/

实例3:

/*2.2 获取方法    int length()  获取字符串的长度    char charAt(int index) 获取特定位置的字符 (角标越界)    int indexOf(String str) 查找子串第一次出现的索引值,如果子串没有出现 在字符串中,那么则返回-1表示。    int lastIndexOf(String str) 查找子串最后一次出现的索引值 , 如果子串没有出现 在字符串中,那么则返回-1表示*/public class Demo3 {    public static void main(String[] args) {        String str = "abc中国ab中国";        System.out.println("字符串的字符 个数: " + str.length() );        System.out.println("根据索引值获取对应 的字符:"+ str.charAt(3));        System.out.println("查找子串第一次出现的索引值:" + str.indexOf("中国"));        System.out.println("查找子串最后一次出现的索引值:" + str.lastIndexOf("中国"));    }   }/*字符串的字符 个数: 9根据索引值获取对应 的字符:中查找子串第一次出现的索引值:3查找子串最后一次出现的索引值:7*/

实例3:

import java.util.Arrays;/*2.3 判断方法    boolean endsWith(String str) 是否以指定字符结束    boolean isEmpty()是否长度为0 如:“” null V1.6    boolean contains(CharSequences) 是否包含指定序列 应用:搜索    boolean equals(Object anObject) 是否相等    boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等2.4 转换方法     char[] toCharArray()  将字符串转换为字符数组byte[]  getBytes();字节数组与字符数组、字符串他们三者之间是可以互相转换。*/public class Demo4 {    public static void main(String[] args) {        String str = "Demo.java";        System.out.println("是否以指定 的字符串结束:"+ str.endsWith("ja"));        //str = "";        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));    }}/*是否以指定 的字符串结束:false判断字符串是否为空内容:false判断字符串是否包含指定的内容:true判断两个 字符串的内容是否一致:false判断两个字符串的内容是否一致(忽略大小写比较):true字符数组:[D, e, m, o, ., j, a, v, a]字节数组:[68, 101, 109, 111, 46, 106, 97, 118, 97]*/

实例4

import java.util.Arrays;/* 其他方法    String replace(String oldChar, String newChar) 替换    String[] split(String regex) 切割    String substring(int beginIndex)   指定开始 的索引值截取子串    String substring(int beginIndex, int endIndex)指定开始 与结束的索引值截取子串    String toUpperCase() 转大写    String toLowerCase() 转小写    String trim() 去除字符串首尾的空格*/public class Demo5 {    public static void main(String[] args) {        String str = "今天晚上不考试";        System.out.println("指定新内容替换旧 的内容:"+ str.replace("不", "要好好"));        str = "大家-下-午-好";        String[] arr = str.split("-"); //根据指定的字符进行切割 。        System.out.println("字符串数组的内容:"+ Arrays.toString(arr));        str = "广州传智播客";        System.out.println("指定开始的索引值截取子串:"+ str.substring(2));        System.out.println("指定开始的索引值截取子串:"+ str.substring(2,6)); //包头不包尾  注意:截取的内容是包括开始的索引值,不包括结束的索引值, 截取的位置是结束的索引值-1.        str = "abC中国";        System.out.println("转大写:" + str.toUpperCase());        str = "AbdfSDD";         System.out.println("转小写:"+ str.toLowerCase());        str = "         大家最近        都非常努力            ";        System.out.println("去除字符串首尾的空格:"+ str.trim());      }}/*指定新内容替换旧 的内容:今天晚上要好好考试字符串数组的内容:[大家, 下, 午, 好]指定开始的索引值截取子串:传智播客指定开始的索引值截取子串:传智播客转大写:ABC中国转小写:abdfsdd去除字符串首尾的空格:大家最近        都非常努力*/

实例5:

/*需求1:自己实现trim的方法。需求2: 获取上传文件名  "D:\\20120512\\day12\\Demo1.java"。需求3:    将字符串对象中存储的字符反序。    新中国好     -----> 好国中新需求4: 求一个子串在整串中出现的次数 。 */public class Demo6 {    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");    }    //统计子串出现 的次数    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);    }    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);            }}/*传智        播客文件名:Demo1.java翻转后的字符串:好国中新出现的次数:3*/
原创粉丝点击