• 第四章第五章深入学习


    第四章第五章深入学习

    关于博客积极主动敲代码的学习

    package src.week3;
    public class b{
        public static  void main(String[] args)
        {
            StringBuffer buffer=new StringBuffer ();
            buffer.append('S');
            buffer.append("tringBuffer");
            System.out.println(buffer.charAt(1));
            System.out.println(buffer.capacity());
            System.out.println(buffer.indexOf("tring"));
            System.out.println("buffer ="+ buffer.toString());
        }
    }
    

    首先关于StringBuffer()的用法与含义。String和StringBuffer他们都可以存储和操作字符串,即包含多个字符的字符串数据。
    String类是字符串常量,是不可更改的常量。而StringBuffer是字符串变量,它的对象是可以扩充和修改的。StringBuffer对象和String对象之间的互转的代码如下:

    String s = “abc”;
    StringBuffer sb1 = new StringBuffer(“123”);
    StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer
    String s1 = sb1.toString(); //StringBuffer转换为String
    
    • 基于上一周的学习,我猜测
    System.out.println(buffer.charAt(1));
    

    对应的输出是第一个字母,但上面代码第二三行分别两次输入不同内容,我猜测输出“S”。

    System.out.println(buffer.capacity());
    

    image
    如图,经过API的查找我发现capacity()的用法是返回这个缓冲区的容量。“StringBuffer”长度为12.故猜测输出为12.

     System.out.println(buffer.indexOf("tring"));
     System.out.println(buffer.indexOf("S"));
    System.out.println(buffer.indexOf("dd"));
    

    经过API查找知道了indexOf()的用法为:indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。故上述代码的输出为:image

    System.out.println("buffer ="+ buffer.toString());
    

    经过书上P111页不可变动字符串的学习,
    知道了上述代码与下述

    String s1=(new StringBuilder()).append("buffer =").append('S').append("tringBuffer").toString();
    

    代码相同,编译结果相同。append()用法经过API查找image得知该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变。

    package src.week3;
    public class c {
        public static void main(String[] args) {
    
            int a = 1000;
            int d, e;
            Integer b = new Integer(a);//使用包装类
            String f = b.toString();
            System.out.println(f);
            System.out.println(c.c(f));
        }
    
        public static String c(String value) {
    
            StringBuffer sbu = new StringBuffer();
            char[] chars = value.toCharArray();
            for (int i = 0; i < chars.length; i++) {
                if (i != chars.length - 1) {
                    sbu.append((int) chars[i]).append(",");
                } else {
                    sbu.append((int) chars[i]);
                }
            }
            return sbu.toString();
    
        }
    }
    
    • 使用上述代码的上半部分可以通过用toString(),方法把数字转化成字符串,下半部分将字符串的ASCII码值打印出来得到验证。输出入下图image
    • 上述用到toCharArray()方法,在API查找到如下结果image大意是将一个字符串放入char型数组中去。代码验证如下
    public class a {
        public static void main(String[] args) {
            int a = 1000;
            String d="ahhj";
            char x[]=d.toCharArray();
            for (int i=0;i<x.length;i++)
            {
                System.out.println(x[i]);
            }
        }
        }
    

    结果如下image
    代码实现将ASCII转化为字符串如下:

    public class c {
        public static void main(String[] args) {
            System.out.println(c.asciiToString("48,49,50"));
        }
    public static String asciiToString(String a)
    {
        StringBuffer x=new StringBuffer();
        String[] chars=a.split(",");
        for (int i=0;i<chars.length;i++)
            x.append((char)Integer.parseInt (chars[i]));
        return x.toString();
    }
    }
    

    输出结果如下:image
    其中split()方法是把字符串转化为字符串数组,如下代码进行验证

    public class a {
        public static void main(String[] args) {
        String s1="how are you today ?";
        StringBuffer x=new StringBuffer();
        String[] chars=s1.split("",3);//limit的含义是最多分成3组,之后的值直接打印出来
            String[] chars1=s1.split(" ");
            for (int i=0;i<chars.length;i++)
            {
                System.out.println(chars[i]);
            }
            for (int i=0;i<chars1.length;i++)
            {
                System.out.println(chars1[i]);
            }
        }
        }
    

    打印结果如下:image

    • Integer.parseInt ()方法的使用:parseInt(String s )方法是类Integer的静态方法,它的作用就是将形参 s 转化为整数,比如:
      Interger.parseInt("1")=1;
      Integer.parseInt("20")=20;在网上搜到如下例题:
      设有下面两个赋值语句:
      a = Integer.parseInt(“123”);
      b = Integer.valueOf(“123”).intValue();
      下述说法正确的是( d )。
      A、a是整数类型变量,b是整数类对象。
      B、a是整数类对象,b是整数类型变量。
      C、a和b都是整数类对象并且值相等。
      D、a和b都是整数类型变量并且值相等。
      valueOf(String s )方法也是Integer类的静态方法,它的作用是将形参 s 转化为Integer对象。再调用intValue()方法,就是将123的对象表示形式转化为基本数据123。
  • 相关阅读:
    内存溢出和内存泄漏的区别
    java 23种设计模式 深入理解
    关于安装office注册表权限的解决方法
    Tomcat在Linux上的安装与配置
    初窥Linux 之 我最常用的20条命令
    redis使用初体验
    学习进度条——第12周
    找水王
    学习进度条——第11周
    学习进度条——第10周
  • 原文地址:https://www.cnblogs.com/paypay/p/6545456.html
Copyright © 2020-2023  润新知