2020年9月17日 String 常用方法一、二、三

package com.atguigu.test09;

import org.junit.Test;

/*
 * 方法系列一:
 * (1)int length():返回字符串的长度,返回的是字符的个数
 * 因为String的内部(JDK1.9之前)用char[]实现,这个长度就是value数组的长度
 * (2)boolean isEmpty():是否是空字符串
 * (3)String toLowerCase()
 *     String toUpperCase()
 * (4)String trim() :去掉字符串的前后空白符 
 * (5)String concat():拼接,等价于+
 */
public class TestStringMethod01 {
    
    @Test
    public void test3(){
        String s1 = "hello";
        String s2 = "world";
        String s3 = s1 + s2;
        String s4 = s1.concat(s2);
        
        System.out.println(s3 == s4);//false//变量和变量拼接,此处s3和s4都是变量;s1和s2是常量;
        System.out.println(s3.equals(s4));//true
    }
    @Test
    public void test2(){
        String str = "    hello   world    ";
        str = str.trim();//需要有一个对象接受操作后的字符串对象;
        System.out.println("[" + str + "]");
    }
    @Test
    public void test1(){
        String str = "hello";
        System.out.println(str.toUpperCase());
    }
}
package com.atguigu.test09;

import java.util.Scanner;

import org.junit.Test;

/*
 * 方法系列二:和char相关
 * (1)char[] toCharArray()//字符串转换成字符数组
 * (2)char charAt(index)//输出第index个数组
 * (3)String(char[] arr)//
 * (4)String(char[] arr,int offset, int count)
 */
public class TestStringMethod2 {
    @Test
    public void test05(){
        char[] arr = {'h','e','l','l','o'};
        
        String string = new String(arr,2,3);//从[2]开始,取3个
        System.out.println(string);
    }
    
    @Test
    public void test04(){
        char[] arr = {'h','e','l','l','o'};
        
        String string = new String(arr);
        System.out.println(string);
    }
    
    @Test
    public void test03(){
        String str = "HelloWorld";
        System.out.println(str.charAt(4));
    }
    @Test
    public void test02(){
        Scanner input = new Scanner(System.in);
        System.out.print("请输入性别:");
        String str = input.next();
        char gender = str.charAt(0);
        System.out.println(gender);
    }
    
    @Test
    public void test01(){
        String str = "HelloWorld";
        
        //统计大写字母的个数
        char[] arr = str.toCharArray();
        int count = 0;
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]>='A' && arr[i]<='Z'){
                count++;
            }
        }
        System.out.println("大写字母的个数:" +count);
    }
}
package com.atguigu.test09;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

import org.junit.Test;

/*
 * 方式系列三:和byte相关,或者说和编码与解码相关
 *(1) byte[]  getBytes():编码的方法,使用平台默认的字符编码进行编的
 *    byte[]  getBytes(编码方式):
 * 
 * 编码:   对于ASCII码范围内(0~127),无论用什么编码方式,结果都是一样的,一个字符对应一个字节的编码值
 *         对于其他的字符,编码,结果不一定是几个字节,例如汉字:
 *         UTF-8:变长的,但是大多数汉字都是3个字节
 *         GBK、GB2312:固定2个字节
 *         ISO8859-1:不支持中文,所有字符都变为1个字节
 * (2)new String(字节数组)
 * new String(字节数组,编码方式)
 * 
 * 编码:
 *      把字符-->字节的过程,编给计算机用的
 * 解码:
 *     把字节-->字符的过程,解给人看的
 * 
 * 乱码:
 * (1)编码与解码字符集不一致
 * (2)缺字节
 */
public class TestStringMethod3 {
    @Test
    public void test05() throws UnsupportedEncodingException{
        String str = "尚硅谷";
        byte[] bytes = str.getBytes("ISO8859-1");
        System.out.println(Arrays.toString(bytes));//[63, 63, 63]
        
        String string = new String(bytes,"ISO8859-1");
        System.out.println(string);
    }
    
    
    @Test
    public void test04() throws UnsupportedEncodingException{
        String str = "尚硅谷";
        byte[] bytes = str.getBytes("GBK");
        System.out.println(Arrays.toString(bytes));//[-55, -48, -71, -24, -71, -56]
        
        String string = new String(bytes,"GBK");
        System.out.println(string);
    }
    
    @Test
    public void test03() throws UnsupportedEncodingException{
        String str = "尚硅谷";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));//[-27, -80, -102, -25, -95, -123, -24, -80, -73]
    
        String string = new String(bytes,"UTF-8");
        System.out.println(string);
    }
    
    @Test
    public void test02(){
        String str = "abc";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));//[97, 98, 99]
    }
    
    @Test
    public void test01(){
        String str = "a";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));//[97]
    }
}
package com.atguigu.test09;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

import org.junit.Test;

/*
 * 方式系列三:和byte相关,或者说和编码与解码相关
 * (1)byte[]  getBytes():编码的方法,使用平台默认的字符编码进行编的
 * byte[]  getBytes(编码方式):
 * 
 * 编码:   对于ASCII码范围内(0~127),无论用什么编码方式,结果都是一样的,一个字符对应一个字节的编码值
 *         对于其他的字符,编码,结果不一定是几个字节,例如汉字:
 *         UTF-8:变长的,但是大多数汉字都是3个字节
 *         GBK、GB2312:固定2个字节
 *         ISO8859-1:不支持中文,所有字符都变为1个字节
 * (2)new String(字节数组)
 * new String(字节数组,编码方式)
 * 
 * 编码:
 *      把字符-->字节的过程,编给计算机用的
 * 解码:
 *     把字节-->字符的过程,解给人看的
 * 
 * 乱码:
 * (1)编码与解码字符集不一致
 * (2)缺字节
 */
public class TestStringMethod3 {
    @Test
    public void test05() throws UnsupportedEncodingException{
        String str = "尚硅谷";
        byte[] bytes = str.getBytes("ISO8859-1");
        System.out.println(Arrays.toString(bytes));//[63, 63, 63]
        
        String string = new String(bytes,"ISO8859-1");
        System.out.println(string);
    }
    
    
    @Test
    public void test04() throws UnsupportedEncodingException{
        String str = "尚硅谷";
        byte[] bytes = str.getBytes("GBK");
        System.out.println(Arrays.toString(bytes));//[-55, -48, -71, -24, -71, -56]
        
        String string = new String(bytes,"GBK");
        System.out.println(string);
    }
    
    @Test
    public void test03() throws UnsupportedEncodingException{
        String str = "尚硅谷";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));//[-27, -80, -102, -25, -95, -123, -24, -80, -73]
    
        String string = new String(bytes,"UTF-8");
        System.out.println(string);
    }
    
    @Test
    public void test02(){
        String str = "abc";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));//[97, 98, 99]
    }
    
    @Test
    public void test01(){
        String str = "a";
        byte[] bytes = str.getBytes();
        System.out.println(Arrays.toString(bytes));//[97]
    }
}

 

posted @ 2020-09-17 20:37  窦云鹏  阅读(122)  评论(0编辑  收藏  举报