转字符串类型三种方法:
将object转成String类型的值。
需要注意的是类型必须能转成String类型,(例如Integer类型就不行)否则抛出ClassCastException
备注:null值可以强制转换为任何java类类型,(String)null是合法的
.toString()
java.lang.Object类里已有public方法.toString(),而通常派生类会覆盖Object里的toString()方法,所以对任何java对象都可以调用此方法。
必须保证object不是null值,否则将抛出NullPointerException异常。
String.valueOf(Object)
弥补了前两者的不足,以.toString()方法为基础。
注意:当转换null时得使用String.valueOf((Object) null),而不是String.valueOf(null)(会报空指针错)
字符串转字符型数组
char[] arr = str.toCharArray()
字符的 “+” 操作是拿字符在计算机底层对应的数值(ascll码)来进行计算的
创建stringbuffer数组
既然已经new StringBuffer[10]了,为什么还要加这句stringBuffers[i] = new StringBuffer();
StringBuffer[] stringBuffers = new StringBuffer[10];
---这一句,是new了一个StringBuffer数组,这个数组有10个StringBuffer作为元素。
stringBuffers[i] = new StringBuffer();
---而这一句,则是将第i个的StringBuffer实例化。
未曾经过实例化(new)而直接使用的对象将会有一个warning,并且在运行时会抛出一个exception。
因此必须先进行一次实例化操作(new),之后才会使用。
BigInteger:任意大的整数,原则上是,只要你的计算机的内存足够大,可以有无限位的
BigInteger 任意大的实数,可以处理小数精度问题。
一些常见的数的赋初值。将int型的数赋值给BigInteger,BigInteger.valueOf(int k);
基本的函数:
valueOf:赋初值
add():+
subtract():-
multiply():*
divide():/
remainder():this % val
divideAndRemainder():a[0]=this / val; a[1]=this % val
pow():a.pow(b)=a^b
gcd(),abs():公约数,绝对值
negate():取负数
signum():符号函数
mod():a.mod(b)=a%b;
shiftLeft():左移,this << n ,this*2^n;
shiftRight():右移,this >> n,this/2^n;
and():等同于c++的&&,且;
or():||,或;
xor():异或,BigInteger xor(BigInteger val),this^val
not():!,非;
bitLength():返回该数的最小二进制补码表示的位的个数,即 *不包括* 符号位 (ceil(log2(this <0 ? -this : this + 1)))。对正数来说,这等价于普通二进制表示的位的个数。
bitCount():返回该数的二进制补码表示中不包扩符号位在内的位的个数。该方法在 BigIntegers 之上实现位向量风格的集合时很有用。
isProbablePrime():如果该 BigInteger 可能是素数,则返回 true ;如果它很明确是一个合数,则返回 false 。 参数 certainty 是对调用者愿意忍受的不确定性的度量:如果该数是素数的概率超过了 1 - 1/2**certainty方法,则该方法返回 true 。执行时间正比于参数确定性的值。
compareTo():根据该数值是小于、等于、或大于 val 返回 -1、0 或 1;
equals:判断两数是否相等,也可以用compareTo来代替;
min(),max():取两个数的较小、大者;
intValue(),longValue(),floatValue(),doublue():把该数转换为该类型的数的值。
注意事项
1,BigInteger属于java.math.BigInteger,因此在每次使用前都要import 这个类。
2,其构造方法有很多,但现在偶用到的有: BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。//字符串构造
BigInteger(String val, int radix)
将指定基数(进制)的 BigInteger 的字符串表示形式转换为 BigInteger。
如要将int型的以2进制转换为BigInteger型,要写为BigInteger B=new BigInteger("2014" ,2);
3,BigInteger类模拟了所有的int型数学操作,如add()替代“+”,divide()替代“/”等,但注意其内容进行数学运算时不能直接使用数学运算符进行运算,必须使用其内部方法。而且其操作数也必须为BigInteger型。
如:B.add(2)就是一种错误的操作,因为2没有变为BigInteger型。
4,当要把计算结果输出时应该使用.toString方法将其转换为(10进制)字符串,详细说明如下:
String toString()
返回此 BigInteger 的十进制字符串表示形式。
输出方法:System.out.print(B.toString());
5,另外说明三个个用到的函数。
BigInteger remainder(BigInteger val)
返回其值为 (this % val) 的 BigInteger。
BigInteger negate()
返回其值是 (-this) 的 BigInteger。
int compareTo(BigInteger val)
将此 BigInteger 与指定的 BigInteger 进行比较。
数组中不能返回最大值,集合中可以(Collections类)