zoukankan      html  css  js  c++  java
  • 《Java编程那点事儿》读书笔记(四)——String和StringBuffer

    String

    1.toString:显示对象内容时系统自动调用的方法。

    public class TOSTRING {
        public String toString(){
            return "this is toString method";
        }
    }
    TOSTRING t = new TOSTRING();
    System.out.println(t);

    2.Math

    Math.函数

    3.String

      1)char charAt(int n)  //获得字符串索引为1的字符

    String a = "abc";
    char b = a.charAt(1);  //b的值为'b'

      2)int compareTo(String s)

    String s = "abc";
    String ss = "abd";
    System.out.println(s.compareTo(ss));

    比较两个字符串的大小,相等输出0;如果s小于ss,输出-1;如果s大于ss,输出1。

    尝试了一下,比较"abc"和"ABC",输出的是32,不知道是什么=。=,如果要忽略大小写比较字符串的话可以用下面的compareToIgnoreCase(String s)函数

      3)int compareToIgnoreCase(String s)

    String s = "abc";
    String ss = "BCD";
    System.out.println("test compareTo");
    System.out.println(s.compareToIgnoreCase(ss));

    4)boolean endsWith(String s)

    判断字符串是否以s结尾,如果是,返回true

    String a = "student.doc";
    boolean b = s.endsWith("doc");

      5)equals

    判断两个字符串对象内容是否相同。如果用“==”比较的是两个字符串在内存存储的地址是否一样。另外一个类似的方法是equalsIgnoreCase(s1);

    6)int indexOf(String s,[int i])

    查找s在字符串中的索引,找不到返回-1。如果加上参数i表示忽略前i个字符,直接从i+1处找s。对应的还是方法lastIndexOf

    String s = "abc";
    int index = s.indexOf('d');  //返回-1
    index = s.indexOf('b',2); //返回-1
    index = s.lastIndexOf('b');  //返回1

      7)length方法:返回字符串的长度

      8)replace方法:替换字符串中所有指定的字符,然后生成一个新的字符串。

           replaceAll方法:替换某个制定的字符串——s.replaceAll("ba","12");

           replaceFirst方法:替换s中第一次出现的制定字符串

      9)split方法:以特定字符串作为间隔摘分字符串得到一个字符串数组

                           如果字符串内部存在和间隔字符串相同的内容时,将得到空字符串,例如abbcbtbb用b拆分得到{"a","","c","t"},结尾的空

                           字符串被忽略

      10)String substring(int m):返回索引值m(包括)以后的所有字符作为子字符串

             String substring(int m,int n):返回索引值m(包括)到n(不包括)之间的字符作为子字符串。

      11)String trim():去掉字符串开始和结尾的空格。

      12)valueOf:将其他类型的数据转换为字符串类型。static方法,不用创建String类型的对象。下面是一个判断自然数位数的程序

    int n = 12345;
    string s = String.valueOf(n);
    int len = s.length(); //len值为5

     StringBuffer

     StringBuffer处理字符串的时候不生成新的对象,直接在原来的字符串上面修改。

      1)初始化

    StringBuffer s = new StringBuffer();

      2)和String之间的转化

    String s = "abc";
    StringBuffer sb1 = new StringBuffer("123");
    
    StringBuffer sb2 = new StringBuffer(s);  //String转StringBuffer
    String s1 = sb1.toString();  //StringBuffer转String

      3)append方法

    StringBuffer sb = new StringBuffer();
    String user = "test";
    String pwd = "123";
    
    sb.append("select *from userInfo where username=")
       .append(user)
       .append("and pwd=")
       .append(pwd);

      4)public StringBuffer deleteCharAt(int index)

          public StringBuffer delete(int start,int end)  //删除start(包含)到end(不包含)间的字符

      5)public StringBuffer insert(int offset, String str)

          查了一下第二个参数的取值还有很多,包括boolean,int等。

      6)reverse

      7)public void SetCharAt(int index,char ch);

  • 相关阅读:
    import cv2出现“ImportError: DLL load failed: 找不到指定的模块”
    Ubuntu 18.04 安装MySQL
    在Pycharm中自动添加时间日期作者等信息
    Ubuntu18.04安装Python虚拟环境
    Windows10远程报错:由于CredSSP加密Oracle修正
    Ubuntu 18.04LTS 更新镜像配置
    jetbrains的JetBrains PyCharm 2018.3.1破解激活到2100年(最新亲测可用)
    解决爬虫中遇到的js加密问题之有道登录js逆向解析
    利用远程服务器在docker容器搭建pyspider运行时出错的问题
    linux服务器安装pyspide关于rgnutls.h: No such file or directory 的解决方案
  • 原文地址:https://www.cnblogs.com/sunshineatnoon/p/3818029.html
Copyright © 2011-2022 走看看