zoukankan      html  css  js  c++  java
  • 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]
        }
    }
  • 相关阅读:
    深度优先和广度优先
    水管工游戏(深度优先)
    炸弹人
    广度优先(迷宫找人)
    System.Data.Entity.Core.MetadataException: 无法加载指定的无数据资源
    Element Cascader 级联选择器 单选操作优化
    Windows服务 ProjectInstaller 获取 路径
    Quartz.NET ScheduledFireTimeUtc 当超过1分钟时出现的问题。
    记录:一个SQL SERVER奇怪的问题。
    log4.net 配置
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/13687509.html
Copyright © 2011-2022 走看看