概述
了解各个类的主要方法。了解其中的主要思想
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值,结束循环。