Java学习笔记11String字符串String转义字符

String,StringBuilder和StringBuffer

转义字符

所有的转义字符和所对应的意义:

转义字符 意义 ASCII码值(十进制)
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\ 代表一个反斜线字符’‘’ 092
代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
\0 空字符(NULL) 000
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\uhhhh 1到2位十六进制所代表的任意字符 二位十六进制

String的值是不可以改变的,每次对String进行操作时都会产生新的String对象,不仅效率低下,而且浪费存储空间。
StringBuilder和StringBuffer属于长度可变字符串。
StringBuilder和StringBuffer。任何指向它的字符串操作都不会产生新的对象。每个对象都有一定的缓冲去容量,当字符串的大小没有超过容量时,不会分配新的内容,当字符串大小超过容量时,会自动增加容量。
StringBuilder是单线程操作字符串。
SrtingBuffer是多线程操作时使用的字符串。
在单线程使用StringBuilder时速度更快,但是不能用于多线程。

判断字符串是否为空白
" ".isBlank(); // true

去除首尾空格 .trim()
" Javastack ".strip(); // “Javastack”

去除尾部空格
" Javastack “.stripTrailing(); // " Javastack”

去除首部空格
" Javastack ".stripLeading(); // "Javastack "

复制字符串
“Java”.repeat(3); // “JavaJavaJava”

行数统计
“A\nB\nC”.lines().count(); // 3

序号 方法描述
1 public StringBuffer append(String s) 将指定的字符串追加到此字符序列。
2 public StringBuffer reverse() 将此字符序列用其反转形式取代。
3 public StringBuilder delete(int start, int end) 移除此序列的子字符串中的字符。
4 public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。
5 insert(int offset, String str) 将 str 参数的字符串插入此序列中。
6 replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符。
1 int capacity() 返回当前容量。
2 char charAt(int index) 返回此序列中指定索引处的 char 值。
3 void ensureCapacity(int minimumCapacity) 确保容量至少等于指定的最小值。
4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 将字符从此序列复制到目标字符数组 dst
5 int indexOf(String str) 返回第一次出现的指定子字符串在该字符串中的索引。
6 int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
7 int lastIndexOf(String str) 返回最右边出现的指定子字符串在此字符串中的索引。
8 int lastIndexOf(String str, int fromIndex) 返回 String 对象中子字符串最后出现的位置。
9 int length() 返回长度(字符数)。
10 void setCharAt(int index, char ch) 将给定索引处的字符设置为 ch
11 void setLength(int newLength) 设置字符序列的长度。
12 CharSequence subSequence(int start, int end) 返回一个新的字符序列,该字符序列是此序列的子序列。
13 String substring(int start) 返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
14 String substring(int start, int end) 返回一个新的 String,它包含此序列当前所包含的字符子序列。
15 String toString() 返回此序列中数据的字符串表示形式。

随机生成123456789和“”,“-”,"+"连接到一起并计算结果输出

public static void main(String[] args) {
    
    
        StrA1Fb saf1 = new StrA1Fb();
        long cishu = 0;
        int jishi = 0;
        int chenggong = 0;
        while (true) {
    
    
            jishi++;
            String s1 = saf1.formula();
            int sum = saf1.addition1(s1);
            if (sum == 100) {
    
    
                System.out.printf("%s=100(循环了%d)\n", s1, jishi);
                chenggong++;
                cishu += jishi;
                jishi = 0;
            }
            if (chenggong >= 11) {
    
    
                break;
            }
        }
        System.out.println(cishu);
    }

    public String formula() {
    
    
        Random rand = new Random();
        String[] s1 = {
    
    "", "+", "-"};
        StringBuilder sb1 = new StringBuilder();
        for (int i = 1; i < 9; i++) {
    
    
            sb1.append(String.format("%d%s", i, s1[rand.nextInt(s1.length)]));
        }
        sb1.append("9");
        return sb1.toString();
    }


    public int addition1(String str) {
    
    
        int sum = 0;
        Pattern p = Pattern.compile("-?\\d+");
        Matcher m = p.matcher(str);
        while (m.find()) {
    
    
            String t = m.group();
            sum += Integer.parseInt(t);
        }
        return sum;
    }
  1. length() 字符个数
  2. equals equalsIgnoreCase方法
  3. trim方法
  4. substring方法
  5. concat()方法用于将指定的字符串参数连接到字符串上。
  6. contains() 判断是否包括某字符串,返回的是true false
  7. indexOf()返回子串的位置索引,没有返回-1
  8. lastIndexOf() 返回子串的位置索引,没有返回-1
  9. replace()替换返回
  10. split()拆分为String[]
  11. toLowerCase() toUpperCase()转换小写大写

猜你喜欢

转载自blog.csdn.net/xxxmou/article/details/129148450
今日推荐