替换字符串:
String s=“2009-07-26”;
System.out.println( s.replace(‘-’,’//’) ); //输出2009/07/26
String s=“0.123456”;
System.out.println( s.replaceAll(“^0”,””) ); //输出.123456
String中的字符不能改变,如果需要改变可以使用StringBuffer
其他注意的事项
Java数组是对象,定义后必须初始化,如 int[] a = new int[100]; 数组长度由length成员得到,如System.out.println(a.length);
Arrays类提供的一些有用方法:
Arrays.fill()
Arrays.sort()
Arrays.binarySearch()
布尔类型为 boolean,只有true和false二值,在 if (...) / while (...) 等语句的条件中必须为boolean类 型。
在C/C++中的 if (n % 2) ... 在Java中无法编译通过。
Java也提供了类似STL的集合类:
Vector,ArrayList,Map,Queue,Stack,Hashtable
3.Java与高精度计算
PKU1001-exponentiation(求幂):
Sample Input 95.123 12 0.4321 20 5.1234 15 6.7592 9 98.999 10 1.0100 12 Sample Output 548815620517731830194541.899025343415715973535967221869852721 . 00000005148554641076956121994511276767154838481760200726351203835 429763013462401 43992025569.928573701266488041146654993318703707511666295476720493 953024 29448126.764121021618164430206909037173276672 90429072743629540498.107596019456651774561044010001 1.126825030131969720661201 |
用C/C++解决的方法
C/C++的pow函数无法达到需要的精度
C/C++用数组来模拟乘法运算提高精度
java代码:
import java.math.*; import java.util.*; public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); while(in.hasNext()){ BigDecimal val=in.nextBigDecimal(); int n=in.nextInt(); BigDecimal ret=val.pow(n).stripTrailingZeros(); System.out.println( ret.toPlainString().replaceAll("^0", "") ); } } } |
BigDecimal类
高精度的有符号十进制数字
构造一个高精度数字
BigDecimal (int val) BigDecimal (double val) BigDecimal (String val) BigDecimal d1=new BigDecimal(1); BigDecimal d2=new BigDecimal(0.1); BigDecimal d3=new BigDecimal("0.1"); System.out.println("d1="+d1); System.out.println("d2="+d2); System.out.println("d3="+d3); BigDecimal类常用方法: BigDecimal add(BigDecimal augend) // “+” BigDecimal subtract(BigDecimal subtrahend) // “-” BigDecimal multiply(BigDecimal multiplicand) // “*” BigDecimal divide(BigDecimal divisor) // “/” BigDecimal remainder(BigDecimal divisor) // “%” BigDecimal pow(int n) //“求幂” String toPlainString() //返回不带指数的字符串表示 String toString() //返回带指数的字符串表示 |
PKU高精度计算题目:
1131、1205、1220、1405、1503、1604 1894、2084、2305、2325、2389、2413 3101、3199