Java字符串

java 字符串

本文将介绍java中有关字符串的相关操作

  • 每次我们学习一个类的时候,可以看一下Java api.那里是他的源码实现;

  • 通过看String的api我们可以发现:

    • string类是final的,不可以被继承.public final class String。
    • String类是的本质是字符数组char[], 并且其值不可改变。private final char value[];
    • String类对象有个特殊的创建的方式,就是直接指定比如String x = "abc","abc"就表示一个字符串对象。而x是"abc"对象的地址,也叫做"abc"对象的引用。
    • String对象可以通过“+”串联。串联后会生成新的字符串。也可以通过concat()来串联
  • 常用的创建字符串的方式有:

    • 使用new关键字创建字符串,比如String s1 = new String("abc");
    • 直接创建赋值:比如String s2 = "abc";
    • 使用串联生成新的字符串: 比如String s3 = "ab" + "c";
  • 下边是用代码实现:

      //字符串  string
      String str = "Hello";
      String str1 = "world";
      //返回1号位置是哪个字符
      System.out.println(str.charAt(1));
    
      //字符串是字符数组
      System.out.println(str.compareTo(str1));
      System.out.println(str.compareToIgnoreCase(str1));
      String item = str.concat(str1);   //字符串的拼接
      System.out.println("拼接的结果=" + item);
    
      //是否包含某个值
      System.out.println(str.contains("H"));
      //以什么结尾
      System.out.println(str.endsWith(".jpg"));
      //两个字符串是否相等
      System.out.println(str.equals(str1));
    

注意:字符串比较的时候不可以用 == ;

因为 == 只是在比较两个变量的地址是否相等;

所以我们要用equal方法来比较两个字符串

equal在比较的时候,会先比较地址是否相等,在比较类型,最后比较内容

  • 字符串的拼接

      String str3 = "Hello";
      String str4 = "World";
      String str5 = str3 + str4;
      String str6 = "Hello" + "World";
      System.out.println(str == str5);    //不相等
      System.out.println(str == str6);    //相等
    
  • 判断字符串是否为空

    • boolean empty = str == null || "".equals(str);
  • 其他操作 :

      //返回字符串的字符数组
      char[] arr = str.toCharArray();
      
      //转换成全大写
      str = str.toUpperCase();
      //转换成全小写
      str = str.toLowerCase();
    
      //trim()  去掉收尾空格
      String name1 = " sdfasdf ";
      String name2 = "asdf";
      System.out.println(name1.trim().equals(name2));
      
      //valueof(ob)  把基本数据类型转换成string类型
      String age = String.valueOf(1);
      //下边这种也是将基本数据类型转换成string类型的,
      //因为string是大类型,所以直接加起来就可以;直接用string类型来接受;
      String age1 = 1 +"";
      //替换
      //前边是原本的,后边是要更新为的
      String temp =  str.replace("H", "h");
      System.out.println(temp);
      String lyce = "葫芦娃\n葫芦娃\n一个藤上7个瓜";
    
      // split 分割
      String[] names =  lyce.split("\n");
      System.out.println(Arrays.toString(names));
    
      // subString 切割
      String name = "zhangsan";
      // 2.开始的位置  5结束的位置
      System.out.println(name.substring(2, 5));;
    
posted @ 2017-09-08 19:38  煮酒问寒秋  阅读(221)  评论(0编辑  收藏  举报