String类的基本操作

import java.math.BigDecimal;
public class test
{

    public static void main(String []args)
    {
        //char型数组可以作为String的形参
        //实现char向string的耦合
        char ch[]={'a','b','c','d','e'};
        String s=new String(ch);
        System.out.println("char型数组为"+s);
        System.out.println("长度为:"+s.length());
        //截取
        //截取一个字符--charAt为一个字符,形参为索引
        char cha=s.charAt(1);
        System.out.println("截取一个字符为:"+cha);
        //截取多个--getChars(),参数1是要复制的第一个位置,参数二是要复制的结束位置-1,第三个参数是char[]类型
        char buf[]=new char [20];
        s.getChars(2,3,buf,0);
        String s1=new String(buf);
        System.out.println("截取多个字符"+s1);
        //耦合
        //实现string向char的耦合,toCharArray返回的是char的指针
        //char arr[]=s.toCharArray();
        System.out.println(s.toCharArray());
        //比较--1 equal和==的使用区别
        //==是比较对象指针是不是指向同一块内存
        String s2,s3;
        s2=new String("123");
        s3=new String("123");
        System.out.println("==:"+s1==s2);//结果为false,两个变量的内存地址不一样,也就是说它们指向的对象不?一样.
        System.out.println("equal:"+s2.equals(s3));//结果为true,因为内容一致.
        //比较--2的注意事项
        StringBuffer s4=new StringBuffer("1");
        StringBuffer s5=new StringBuffer("1");
        System.out.println("StringBuffer:"+s4.equals(s5));//结果为false
        //因为StringBuffer里没有定义这个方法,因此来自Object类
        //而Object类中equals这个方法是比较地址的,所以返回flase
        //比较--3equalsignorecase
        s2=new String("ABC");
        s3=new String("abc");
        System.out.println("equalsignorecase:"+s2.equalsIgnoreCase(s3));
        //regionMatches(int 1,int 2,int 3,int 4)
        s="膜大佬 dalao";
        s2="dalao";
        s3="DALAO";
       //public boolean regionMatches(int toffset,String other,int ooffset,int len)
       //or public boolean regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len)
       //toffset?--?该分区域在此字符串中的起始偏移量。
       //other?-- 字符串参数。
       //ooffset?-- 该次区域中的字符串参数的起始偏移量。
       //len?-- 比较的字符的数目。
       //ignoreCase?-- 如果为true,比较字符时忽略大小写。
        System.out.println("s.regionMatches(4,s2,0,5):"+s.regionMatches(4,s2,0,5));
        System.out.println("s.regionMatches(4,s3,0,5,1):"+s.regionMatches(true,4,s3,0,5));
        //匹配
        //首尾字符串匹配
        System.out.println("首尾匹配字符串方法");
        s2=new String("kalao,I am kalao");
        s3=new String("kalao");
        System.out.println("startsWith:"+s2.startsWith(s3));
        System.out.println("endsWith  :"+s2.endsWith(s3));
        //匹配字符返回下标索引
        //int indexOf(int ch,int fromIndex)函数 ,从fromIndex(包括fromIndex)往后寻找第一个和ch匹配的字符,并且返回下标
        System.out.println("indexOf  :"+s2.indexOf('a',1));
        System.out.println("indexof  :"+s2.indexOf('a'));
        //lastIndexOf函数返回也是下标索引
        //public int lastIndexOf(int ch)
        System.out.println("lastIndexOf:"+s2.lastIndexOf('a'));
       //public String substring(int beginIndex)
       //public String substring(int beginIndex, int endIndex)
       //beginIndex?-- 开始的索引(包含)
       //endIndex?-- 结束的索引(不包含)
        System.out.println("substring:"+s2.substring(0));
        System.out.println("substring:"+s2.substring(0,5));
        //连接
       //public String concat(String s)
       //s?-- 这个字符串是串连到结尾的那个字符串。
        s2=s2.concat(" is not dalao");
        System.out.println("contact :"+s2);
        //替换
        //public String replace(char oldChar, char newChar)
        //把所有字符串里面的oldChar用newChar替换
        //oldChar?-- old 字符.newChar?-- new 字符.
        System.out.println("replace :"+s2.replace('l','d'));
        s2=new String(" kalao is zhazha ");
        //去掉空格
        //public String trim()
        System.out.println("trim()函数:"+s2.trim());
        //格式转换为String类型
        //boolean ,char ,char[]data ,double ,float ,int ,long ,Object
        //char[]data ,int offset,int count
        /*
        String.valueOf() 方法的使用
        1. 由 基本数据型态转换成 String
        String 类别中已经提供了将基本数据型态转换成 String 的 static 方法
        也就是 String.valueOf() 这个参数多载的方法
        有下列几种
        String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串
        String.valueOf(char c) : 将 char 变量 c 转换成字符串
        String.valueOf(char[] data) : 将 char 数组 data 转换成字符串
        String.valueOf(char[] data, int offset, int count) :
        将 char 数组 data 中 由 data[offset] 开始取 count 个元素 转换成字符串
        String.valueOf(double d) : 将 double 变量 d 转换成字符串
        String.valueOf(float f) : 将 float 变量 f 转换成字符串
        String.valueOf(int i) : 将 int 变量 i 转换成字符串
        String.valueOf(long l) : 将 long 变量 l 转换成字符串
        String.valueOf(Object obj) : 将 obj 对象转换成 字符串, 等于 obj.toString()
        用法如:
        int i = 10;
        String str = String.valueOf(i);
        这时候 str 就会是 "10"
        */
        double d = 102939939.93925562525;
        System.out.println("Return Value : " + String.valueOf(d) );
        /*
        2. 由 String 转换成 数字的基本数据型态
        要将 String 转换成基本数据型态转
        大多需要使用基本数据型态的包装类别
        比如说 String 转换成 byte
        可以使用 Byte.parseByte(String s)
        这一类的方法如果无法将 s 分析 则会丢出 NumberFormatException
        byte :
        Byte.parseByte(String s) : 将 s 转换成 byte
        Byte.parseByte(String s, int radix) : 以 radix 为基底 将 s 转换为 byte
        比如说 Byte.parseByte("11", 16) 会得到 17
        double :
        Double.parseDouble(String s) : 将 s 转换成 double
        float :
        Double.parseFloat(String s) : 将 s 转换成 float
        int :
        Integer.parseInt(String s) : 将 s 转换成 int
        long :
        Long.parseLong(String s)
        */
        System.out.println("Float.parseFloat"+Float.parseFloat(String.valueOf(d)));
        //这里结果为1.02939936E8这里精度只到小数点后7位
        System.out.println("Float.parseDouble"+Double.parseDouble(String.valueOf(d)));
        //这里结果精确到小数点后16位
        BigDecimal b1=new BigDecimal("102939939.93925562525");
        //大数
        System.out.println("BigDecimal b1:"+b1);
        BigDecimal b2=BigDecimal.valueOf(123232.0002);
        System.out.println("BigDecimal b2:"+b2);
        //大数相加
        //public?BigDecimal?add(BigDecimal?augend),返回BigDecimal
        System.out.println("Add b1+b2:"+b1.add(b2));
        System.out.println("Add b1+b2:"+b1.add(b2).doubleValue());
        //大数相减
        //public?BigDecimal?subtract(BigDecimal?subtrahend)
        System.out.println("subtract b1-b2:"+b1.subtract(b2));
        System.out.println("subtract b1-b2:"+b1.subtract(b2).doubleValue());
        //大数相乘
        //public?BigDecimal?multiply(BigDecimal?multiplicand)
        System.out.println("b1*b2:"+b1.multiply(b2));
        System.out.println("b1*b2:"+b1.multiply(b2).doubleValue());
        //大数相除
        //public?BigDecimal?divide(BigDecimal?divisor)
        b1=new BigDecimal(100);
        b2=new BigDecimal(5);
        System.out.println("b1/b2:"+b1.divide(b2));
        System.out.println("b1/b2:"+b2.divide(b1).doubleValue());
        /*
        public static double div(double value1,double value2,int scale) throws IllegalAccessException{
                 //如果精确范围小于0,抛出异常信息
                 if(scale<0){
                     throw new IllegalAccessException("精确度不能小于0");
                 }
                 BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
                 BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
                 return b1.divide(b2, scale).doubleValue();
             }
        */
        //大数取余
        //public?BigDecimal?remainder(BigDecimal?divisor)
        System.out.println("b1%b2:"+b1.remainder(b2));




    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值