java中的StringBuilder和Integer

StringBulider是一个可变的字符串类,可以把它看作是一个容器。

String和StringBuilder的区别:

    String中的内容是不可变的
    StringBuilder中的内容是可变的

String和StringBuilder的相互转换:

     通过toString()方法,把StringBuilder转换成String
     通过StringBuilder的构造方法,把String转换成StringBuilder

下来我们看一组代码:

public class StringBuilderTest  
{  
public static void main(String[] args)  
    {  
        StringBuilder s = new StringBuilder();    
        //追加
        s.append("wwt").append(" show");  
        System.out.println(s);  
        //插入
        s.insert(3," begin");  //从序号3(第一个字符为序号0)的位置插入 begin字符串
        System.out.println(s);  
        //删除
        s.delete(3, 3+" begin".length());  //将上面插入的 begin字符串,删除[3,8),前闭后开
        System.out.println(s);  
        //字符串长度和容量大小
        System.out.println("字符串长度:"+s.length());  
        System.out.println("字符串中序号是1的字符是:"+s.charAt(1));  
        s.append(" StringBuilder");  
        System.out.println(s);  
        System.out.println("i第一次出现的位置序号:"+s.indexOf("i"));  
        System.out.println("i最后一次出现的位置序号:"+s.lastIndexOf("i"));  
        //替换
        s.replace(4,8, "test"); //从序号4到序号8之间的内容替换为test
        System.out.println(s);  
        System.out.println("字符串反序输出:"+s.reverse());  
        s.reverse();  
        //字符串截取
        System.out.println("截取序号4到8的内容:"+s.substring(4, 8));  
        //转换成String
        System.out.println(s.getClass().getSimpleName());  
        System.out.println(s.toString().getClass().getSimpleName());  
    }
}  

今天我们不读代码,我们使用一个神奇的“唱跳rap篮球”键,将StringBuilder类展开,瞅瞅它的源代码

打开以后,会有这么个东西
在这里插入图片描述在这里插入图片描述
440行,我们不需要一行一行的看,只需看我们所寻找的目标即可

首先是这个

public final class StringBuilder
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence

这段代码可以看到StringBuilder是由Final修饰的关键字,所以,我们可以知道这个这个类是不能被继承的,

他继承他的父类AbstractStringBuilder,而他的父类有两个接口,我们看父类的源代码可以看出来

首先,他有四个构造函数

StringBuilder() value //内容为空,并设置容量为16个字节;
StringBuilder(CharSequece seq)  //使用seq初始化,容量在此基础上加16;
StringBuilder(int capacity) //设置特定容量;
StringBuilder(String str)  //使用str初始化,容量str大小的基础上加16;

接下来是

StringBuilder delete(int start,int end) //删除从start到end(不包含)之间的内容;
StringBuilder deleteCharAt(int index) //删除index位置的字符;
StringBuilder replace(int start,int end,String str)// 用str中的字符替换value中从start到end位置的子序列;
StringBuilder reverse() //反转;
void setCharAt(int index,char ch) //使用ch替换位置index处的字符;
void setLength(int newLength)// 可能会改变内容(添加'\0');

int capacity() //返回value的大小即容量;
int length() //返回内容的大小,即count;
char charAt(int index) //返回位置index处的字符;
void ensureCapacity(int minimumCapacity) //确保容量至少是minimumCapacity;
void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) //返回srcBegin到srcEnd的字符到dst;
int indexOf(String str) //返回str第一次出现的位置;
int indexOf(String str,int fromIndex) //返回从fromIndex开始str第一次出现的位置;
int lastIndexOf(String str) //返回str最后出现的位置;
int lastIndexOf(String str,int fromIndex) //返回从fromIndex开始最后一次出现str的位置;
CharSequence subSequence(int start,int end) //返回字符子序列;
String substring(int start) //返回子串;
String substring(int start,int end) //返回子串;
String toString() //返回value形成的字符串;
void trimToSize() //缩小value的容量到真实内容大小;

Integer 类

基本数据类型和对应的包装类类型、Integer包装类的构造方法、int类型和String类型之间的转换、Integer包装类的其他成员方法、Integer包装类的进制转换、Integer包装类的自动拆装箱原理、Integer包装类的数据缓冲池

构造函数

(1) public Integer(int value)

(2) public Integer(String s) 注意:s必须得是数字字符。
例子:
Integer i = new Integer(“1234”);
生成了一个值为1234的Integer对象。

int 类型 和 String 类型的相互转换

(1)int 类型 ——> String 类型

推荐方法:String.valueOf(number) 和 Integer.toString(number)
(2)String 类型 ——> int 类型

推荐方法:Integer.parseInt(s)
(3)String 类型 ——> float 类型

推荐方法:Float.parseFloat(s) :以此类推其他的基本数据类型。
如下所示

public class IntegerDemo {
	public static void main(String[] args) {
		// int ——> String
		int number = 100;
		
		// 方式1
		String s1 = "" + number;
		System.out.println("s1:" + s1);
		
		// 方式2
		String s2 = String.valueOf(number);
		System.out.println("s2:" + s2);
		
		// 方式3
		// int ——> Integer ——> String
		Integer i = new Integer(number);
		String s3 = i.toString();
		System.out.println("s3:" + s3);
		
		// 方式4
		// public static String toString(int i)
		String s4 = Integer.toString(number);
		System.out.println("s4:" + s4);
		
		System.out.println("-----------------");
 
		// String ——> int
		String s = "100";
		
		// 方式1
		// String ——> Integer ——> int
		Integer ii = new Integer(s);
		// public int intValue()
		int x = ii.intValue();
		System.out.println("x:" + x);
		
		//方式2
		//public static int parseInt(String s)
		int y = Integer.parseInt(s);
		System.out.println("y:"+y);
	}
}

 byteValue()//取得用byte类型表示的整数; 
 int compareTo(Integer anotherInteger) //比较两个整数。相等时返回0;小于时返回负数;大于时返回正数。 
 int compareTo(Object o) //将该整数与其他类进行比较。如果o也为Integer类,进行方法2 的操作;否则,抛出ClassCastException异常。 
 static Integer decode(String nm) //将字符串转换为整数。 
 double doubleValue() //取得该整数的双精度表示。 
 boolean equals(Object obj) //比较两个对象。 
 float floatValue() //取得该整数的浮点数表示。 
 static Integer getInteger(String nm) //根据指定名确定系统特征值。 
 static Integer getInteger(String nm, int val) //上面的重载。 
 static Integer getInteger(String nm, Integer val) //上面的重载。 
 int hashCode() //返回该整数类型的哈希表码。 
 int intValue() // 返回该整型数所表示的整数。 
 long longValue() //返回该整型数所表示的长整数。 
 static int parseInt(String s) //将字符串转换成整数。s必须是时进制数组成,否则抛出异常。 
 static int parseInt(String s, int radix) //以radix为基数radix返回s的十进制数。所谓的基数,就是“几进制”。 
 short shortValue() //返回该整型数所表示的短整数。 
 static String toBinaryString(int i) //将整数转为二进制数的字符串。 
 static String toHexString(int i) //将整数转为十六进制数的字符串。 
 static String toOctalString(int i) //将整数转为八进制数的字符串。 
 String toString() //将该整数类型转换为字符串。 
 static String toString(int i)//将该整数类型转换为字符串。不同的是,此为类方法。 
 static String toString(int i, int radix) //将整数i以基数radix的形式转换成字符串。 
 static Integer valueOf(String s) //将字符串转换成整数类型。 
 static Integer valueOf(String s, int radix) //将字符串以基数radix的要求转换成整数类型。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值