二、我是菜鸟_6.Java字符串

字符串在开发中的重要程度不言而喻,必会而且要精通,其中带来的好处只有自己才清楚。

一、创建字符串

  1. 创建一个空字符串
    //    创建一个空字符串
    String str1 = new String();
  1. 用一个字符数组创建一个字符串 String(char[] c)
      char[] c = new char[] {'a','b','c','d','e','f','g'};
      String str2 = new String(c);
      System.out.println(str2);

3.提取字符数组中的一部分创建一个字符串对象 String(char[] c,int offset, int length)

        //  3个参数的意思:(字符数组的名字,起始索引,长度)       
    char[] c2 = new char[] {'h','a','h','n','i','c','e','i','o','s'};
    String str3 = new String(c2, 3, 4); 
    System.out.println(str3);

二、字符串的基本操作

  1. 连接字符串
      String str4 = new String("Hello");
      String str5 = new String("World!");
      System.out.println(str4 + " " + str5);
  1. 字符串连接其他类型
//  25是数值类型的数据,在使用‘+’进行连接操作时,会将25转化为String类型 "25"
    String str6 = new String("我今年");
    System.out.println(str6 + 25 + "岁了!");
  1. 获取字符串的长度
//  值得注意的是,如果字符串中有空格,每一个空格也算作一个长度
    int strLength = str6.length();
    System.out.println(strLength);
  1. 获取指定字符的索引位置
//  有两个方法可以获取字符的索引,indexOf()和lastIndexOf()
    String str7 = new String("haha,very interesting.");
    //  indexOf()方法取得第一次出现某个字符的位置
    int firstIndex = str7.indexOf('v');
    System.out.println("在str7中,字符‘V’第一次出现的位置索引为:" + firstIndex);
    int lastIndex = str7.lastIndexOf('t');
    System.out.println("在str7中,字符‘t’最后一次出现的位置索引为:" + lastIndex);
    //  如果被搜索的字符串中没有这个字符,那么返回-1
    int SearchIndex = str7.indexOf('b');
    System.out.println(SearchIndex);
  1. 获取指定索引位置上的字符 charAt()
//  注意索引的大小,绝对不能大于字符串的长度-1,如果大于长度会报java.lang.StringIndexOutOfBoundsException异常
    String str8 = new String("that's easy");
    System.out.println(str8.charAt(4));
  1. 除去字符串的空格,2种方法,一种是除去字符串前部和尾部的空格,另一种是除去字符串中全部的空格
         String str9 = " I'm fine.    ";
     // 除去前部和尾部的空格      str.trim();
    System.out.println(str9.trim());
    //  除去字符串中所有的空格  
    //  StringTokenizer(String str, String delim) str表示要除去空格的字符串,delim表示从str中取出的字符
    StringTokenizer st = new StringTokenizer(str9, " ");
    StringBuffer sb = new StringBuffer();   //  定义字符串缓存对象
    int i = 1;
    while(st.hasMoreTokens()){
        i++;
        sb.append(st.nextToken());  //  向字符串生成器中追加内容
    }
    System.out.println("去掉所有空格后的str9:" + sb.toString());
    //  replaceAll()
    String str10 = new String(" jk  fld jkfd jfk     jsdf");
    str10 = str10.replaceAll(" ", "");
    System.out.println(str10);
  1. 替换字符串
//  用一个新的字符串替换原来字符串的指定的子字符串 str.replace(String regex, String replacement)
    String s = new String("bad bad study");
    String s2 = s.replace("bad", "good");
    System.out.println(s2); 
    
    //  如果只想替换第一个匹配的子字符串
    String s3 = s.replaceFirst("bad", "good");
    System.out.println(s3); 
    //  假如有要替换的字符串在原字符串有多个,可以使用for循环执行str.replaceFirst(strold, strnew);
  1. 判断字符串是否相等
//  2中方法,equals() 和 equalsIgnoreCase()
    //  equals() 严格区分大小写,在此情况下仍有相同的字符和长度时,结果为true,否则为false。
    String s4 = new String("nice");
    boolean result = s4.equals("nice");
    System.out.println(result);

        //  equalsIgnoreCase()  在忽略大小写的情况下,如果仍有相同的字符和长度时,结果为true,否则为false。
    String s5 = new String("NICE");
    boolean result2 = s5.equalsIgnoreCase(s4);
    System.out.println(result2);
    //  ==在比较字符串时,比较的是内存位置,不建议使用。在数值型中可以使用。 
  1. 判断字符串是不是以指定的内容开始或者结尾
//  判断字符串是不是以 "abc" 开头
    String s6 = new String("abcqweriop");
    System.out.println(s6 + "是否以abc开头的字符串?" + s6.startsWith("abc"));        
    //  判断字符串是不是以 "op" 结尾       
    System.out.println(s6 + "是否以op结尾的字符串?" + s6.endsWith("op"));
  1. 字母大小写转换
        String s7 = new String("HfdkDRTvcC");
    //  全部转为小写
    System.out.println(s7 + "全部转换为小写字母:" + s7.toLowerCase());
    //  全部转为大写
    System.out.println(s7 + "全部转换为大写字母:" + s7.toUpperCase());
    //  以上两个方法在转换时,对字符串中的数字和其他字符不做改变
  1. 分割字符串 str.split(String s);
//  用s来分割str,别把分割后的结果返回一个字符串数组
    String s8 = new String("qwe,rty,uio,p[]");
    String[] sArr = s8.split(",");
    for (String ss : sArr) {
        System.out.print(ss);
    }
    System.out.println();
    //  split()的另外一种重载
    //  str.split(String sign, int limit); sign为分隔符,limit为拆分的份数
    //  例如,分割为2份,只去掉一个‘,’。分割为3份,去掉2个‘,’
    String[] strLimit = s8.split(",", 2);
    for (String ss : strLimit) {
        System.out.print(ss);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容