Number&Math&Character&Stringbuffer&StringBuilder类

概述

了解各个类的主要方法。了解其中的主要思想

Number类

首先我们引出一个疑问呢?我们知道已经有了内置数据类型了,为啥,还要用Number类呢!!!
这是因为,Java是面向对象编程,在开发过程中难免遇到使用对象,而不是内置数据类型的情况,因此为了解决这个问题,Java为每个内置数据类型提供了相应的包装类。
Integer Long Byte Double Float Short 都是Number的子类

public class Test{
 
   public static void main(String args[]){
      Integer x = 5;
      x =  x + 10;
      System.out.println(x); 
   }
}

Math类

包含了用于执行基本数学运算的属性和方法

Character

该类用于对单个字符进行操作
Character类在对象中包装了一个基本数据类型char的值

StringBuffer&StringBuilder

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。

今日奖励

牛客网
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
编程语言用Java

    public static String replaceSpace(StringBuffer str) {
        String a;
        int first;
        int i=0;
        char str1 [];
        str1=new char[1000000];
        for(;str.length()!=0;){
            first=str.indexOf(" ");
            if(first!=-1){
            str.getChars(0,first,str1,i);
            i=i+first;
            str1[i]='%';
            str1[i+1]='2';
            str1[i+2]='0';
            i=i+3;
            str=str.delete(0,first+1);
            }
            else{
                str.getChars(0,str.length(),str1,i);
                str=str.delete(0,str.length());
            }
        }

        StringBuffer aa;
        aa=new StringBuffer("");
        for(i=0;str1[i]!='';i++){
            aa.append(str1[i]);
        }
        return aa.toString();
    }

在Java中这类主要用到
StringBuffer类,他的具体函数可以查看API。JavaApi
现在,我就我用到的函数,进行讲解

indexOf(char str)

该函数表示 查找字符str在StringBuffer首次出现的位置,当StingBuffer中没有是返回-1
例如
I Like Study

getChar(int strBegin,int strEnd,char [],int destBegin)

该函数表示从StringBuffer复制从strBegin到StrEnd的字符,其中不包括末尾字符

delete(int a,int b)

该函数表示从StringBuffer删除从strBegin到StrEnd的字符,其中不包括末尾字符
该题的主要思路
首先判断空格的位置first记录下来,并利用getcahar函数将StringBuffer从0到first的字符复制字符数组a,然后加入%20,并记录destBegin得值。然后删除前first的值,并进行循环,当最没有空格时,直接将最后的StringBuffer值加入a,并删除StringBuffer值,结束循环。

首次写题解,欢迎评论。
原文地址:https://www.cnblogs.com/gaochunhui/p/11700623.html