package exe.string; import java.io.UnsupportedEncodingException; import java.util.Arrays; public class StringDemo { /** * @Title * @Description * @param * @return void * @pages * @throws */ public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "abcdefg"; String str2 = "abcdefgh"; String str3 = "abcd"; String str4 = "ABCDEFG"; String str5 = "exe.java"; String str6 = new String("abcdefg"); String str7 = "计算机"; String str8 = "我是歌手;第二季;名单"; String str9 = "abcdbcd"; String str10 = "123456"; String str11 = "ABCDEgghijklmn"; String str12 = " abcd efg "; // charAt()方法 按照索引寻值 char c = str1.charAt(3); System.out.println("按照索引寻值:"+c); /* * compareTo方法 *该方法的做用是比较两个字符串的大小,比较的原理是依次比较每一个字符的字符编码。 *首先比较两个字符串的第一个字符,若是第一个字符串的字符编码大于第二个的字符串的字符编码,则返回大于0的;, *若是小于则返回小于0的值,若是相等则比较后续的字符,若是两个字符串中的字符编码彻底相同则返回0。 */ int value = str1.compareTo(str2); int value1 = str1.compareTo(str3); System.out.println("比较字符串str1 and str2的大小:"+value); System.out.println("比较字符串str1 和 str3的大小:"+value1); /* * 在String类中还存在一个相似的方法compareToIgnoreCase,这个方法是忽略字符的大小写进行比较,比较的规则和compareTo同样。 */ int value2 = str1.compareToIgnoreCase(str4); System.out.println("比较大小写字符串的大小:"+value2); /* * concat 方法 * 是两个字符串链接,造成新的字符串 */ String s = str1.concat(str4); System.out.println("在str1字符串的末尾加上str4的字符串:"+s); /* * endsWith方法 * 该方法的做用是判断字符串是否以某个字符串结尾,若是以对应的字符串结尾,则返回true */ boolean b = str5.endsWith("java"); System.out.println("字符串结尾为java?"+b); /* * equals方法 * 该方法的做用是判断两个字符串对象的内容是否相同。若是相同则返回true,不然返回false。 */ b oolean bb = str1.equals(str6); System.out.println("str1 and str6 相等?"+bb); boolean bbb = (str1==str6); System.out.println("str1 and str6 相等?"+bbb); /* * getBytes方法 *该方法的做用是将字符串转换为对应的byte数组,从而便于数据的存储和传输。 */ byte[] by; try { by = str7.getBytes("gb2312"); String st = new String(by);// 输出数组要转换成字符串得以输出 System.out.println("字符串与String转换:"+st); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } /*indexOf方法 *该方法的做用是查找特定字符或字符串在当前字符串中的起始位置,若是不存在则返回-1 */ int ss = str1.indexOf('b'); System.out.println("b所在字符串中的起始位置:"+ss); //固然,也能够从特定位置之后查找对应的字符,例如: int index = str1.indexOf('d',4); System.out.println(index); //另一个相似的方法是lastIndexOf方法,其做用是从字符串的末尾开始向前查找第一次出现的规定的字符或字符串, int as = str2.lastIndexOf('g'); System.out.println(as); //length 方法 字符串长度 int len = str1.length(); System.out.println("字符串的长度:"+len); /*replace方法 *该方法的做用是替换字符串中全部指定的字符,而后生成一个新的字符串。通过该方法调用之后,原来的字符串不发生改变。 *split('b',2)该代码的做用是将字符串s最多拆分红包含2个字符串数组. *若是第二个参数为负数,则拆分出尽量多的字符串,包括尾部的空字符串也将被保留。 */ String s1 = str1.replace('d', 'n'); System.out.println("新字符串:"+s1); String sss[]= str8.split(";"); for(int i=0;i<sss.length;i++){ System.out.println("用replace获得新字符串: "+sss[i]); } String sss1[] = str9.split("b",2);//该代码的做用是将字符串s最多拆分红包含2个字符串数组 for(int i=0;i<sss1.length;i++) System.out.println("字符串被分红两个:"+sss1[i]); //startWith 方法 和 endWith类似 判断是否以给定字符串开头 boolean sss2 = str10.startsWith("12"); System.out.println("是否以12开头:"+sss2); //substring方法 //该方法的做用是取字符串中的“子串”,所谓“子串”即字符串中的一部分 String ss1 = str10.substring(2); System.out.println("获得的子串为:"+ss1); String ss2 = str10.substring(2, 5); System.out.println("获得的子串为:"+ss2); //下面是一个简单的应用代码,该代码的做用是输出任意一个字符串的全部子串。 int len9 = str9.length(); for(int begin = 0;begin<len-1;begin++){ for(int end=begin+1;end<len;end++){ System.out.println(str9.substring(begin,end)); } } // toCharArray 方法 将字符串转换为相应数组 char[] cc = str10.toCharArray(); String ss3 = new String(cc); System.out.println("获得的字符串:"+ss3); //toLowerCase方法 该方法的做用是将字符串中全部大写字符都转换为小写。 String ss4 = str11.toLowerCase(); System.out.println("大写转换成小写:"+ss4); //toUpperCase方法 将字符串小写转换成大写 String ss5 = str11.toUpperCase(); System.out.println("小写转换成大写:"+ss5); //trim方法 //该方法的做用是去掉字符串开始和结尾的全部空格,而后造成一个新的字符串。该方法不去掉字符串中间的空格。 String ss6 = str12.trim(); System.out.println("去掉开头和结尾的空格:"+ss6); //valueOf方法 //该方法的做用是将其它类型的数据转换为字符串类型。须要注意的是,基本数据和字符串对象之间不能使用之前的强制类型转换的语法进行转换。 //介绍一个简单的应用,判断一个天然数是几位数字的逻辑代码以下: String ss7 = String.valueOf(str10); int len2 = ss7.length(); System.out.println("位数为:"+len2); } } 答案: 按照索引寻值:d 比较字符串str1 and str2的大小:-1 比较字符串str1 和 str3的大小:3 比较大小写字符串的大小:0 在str1字符串的末尾加上str4的字符串:abcdefgABCDEFG 字符串结尾为java?true str1 and str6 相等?true str1 and str6 相等?false 字符串与String转换:计算机 b所在字符串中的起始位置:1 -1 6 字符串的长度:7 新字符串:abcnefg 用replace获得新字符串: 我是歌手;第二季;名单 字符串被分红两个:a 字符串被分红两个:cdbcd 是否以12开头:true 获得的子串为:3456 获得的子串为:345 a ab abc abcd abcdb abcdbc b bc bcd bcdb bcdbc c cd cdb cdbc d db dbc b bc c 获得的字符串:123456 大写转换成小写:abcdegghijklmn 小写转换成大写:ABCDEGGHIJKLMN 去掉开头和结尾的空格:abcd efg 位数为:6