1、Double类中本来就有个方法parseDouble() ,作用是把字符串转换为Double。
比如你要把字符串转换为整数也是一样的方法:int a=Integer.parseInt("abc");
2、T 30.0 D 25.0读取这一行的时候注意,用空格分隔,然后把读取的字符串转为double
String[] line = scan.nextLine().split(" ");//用split分隔才不报错
Double t=Double.parseDouble(line[1]);
3、Math.pow(x,y)这个函数是求x的y次方,x,y的值都是浮点类型的,而你现在要求的是pow(64,1/3),那么也就是64的1/3次方,如果我们口头上来算的话,可以看成64的3次方根,但是计算机不会这样算,他会先求出1/3的值,1/3中1和3均为int类型,所以值为0,然后y这个值是浮点类型,所以自动转换为0.0,任何数字的0次幂都为1,所有这个地方求出来的值为1,而不是4,有时候我们不能以数学的方式来判断计算机的算法。
4、 // 定义一些变量,用来格式化输出。
double d = 345.678;
String s = "你好!";
int i = 1234;
// "%"表示进行格式化输出,"%"之后的内容为格式的定义。
System.out.printf("%f", d);// "f"表示格式化输出浮点数。
System.out.printf("%9.2f", d);// "9.2"中的9表示输出的长度,2表示小数点后的位数。
System.out.printf("%+9.2f", d);// "+"表示输出的数带正负号。
System.out.printf("%-9.4f", d);// "-"表示输出的数左对齐(默认为右对齐)。
System.out.printf("%+-9.3f", d);// "+-"表示输出的数带正负号且左对齐。
System.out.printf("%d", i);// "d"表示输出十进制整数。
System.out.printf("%o", i);// "o"表示输出八进制整数。
System.out.printf("%x", i);// "d"表示输出十六进制整数。
System.out.printf("%#x", i);// "d"表示输出带有十六进制标志的整数。
System.out.printf("%s", s);// "d"表示输出字符串。
System.out.printf("输出一个浮点数:%f,一个整数:%d,一个字符串:%s", d, i, s);
// 可以输出多个变量,注意顺序。
System.out.printf("字符串:%2$s,%1$d的十六进制数:%1$#x", i, s);
// "X$"表示第几个变量。
4、可以这样创建立数组.
创建建数组:
格式为 int[] a = new int[n];//n为数组长度
初始化数组:
格式为 int[] a = new int[]{1,2,3};
int[] b = {1,2,3};
5、toCharArray()的用法:将字符串对象中的字符转换为一个字符数组
例如:
String myString="abcd";
char myChar[]=myString.toCharArray();
System.out.println("myChar[1]="+myChar[1]);
5、List中的get(i)方法是获取List中的是第i+1个对象。List是从0开始的
List是有序的可重复的集合接口
6、java.math.BigDecimal.toPlainString() 返回此BigDecimal的字符串表示形式不带指数字段。
7、比如说有个String str="12345";
substring函数是取一个string子串,如果j=1,那么str.substring(j+1)就是取从第二位开始的子串,所以str.substring(j+1)等于"345";
valueOf是Integer类的一个静态方法,它是把一个string参数转换为Integer类型,那么经过Integer.valueOf("345")转换,345就是一个Integer类型了
最后说这个intValue函数,它是将一个Integer类型转换成原始类型int, 所以最后len就等于345了。
String.valueOf()是把java的原始数据类型或运用多态产生的Object类型转为String类型
8.acm第1455道程序很简单,算法自己想不出,运用/2和%2的.
9、StringBuilder 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串生成器中。append 方法始终将这些字符添加到生成器的末端;而 insert 方法则在指定的点添加字符。
10、set是一个不包含重复元素的 collection。
11、格式化输出例子
value = value / 12; DecimalFormat df = new DecimalFormat(".00"); String str = df.format(value);
12、ch >= 'p' && ch <= 'z'注意不能直接写成 p<ch<z
14、n.pow(d)就是n的d次幂
15、Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
BigDecimal 的运算方式 不支持 + - * / 这类的运算 它有自己的运算方法
BigDecimal add(BigDecimalaugend) 加法运算
BigDecimal subtract(BigDecimal subtrahend) 减法运算
BigDecimal multiply(BigDecimal multiplicand) 乘法运算
BigDecimal divide(BigDecimal divisor) 除法运算
16、sort(int[] a)
对指定的 int 型数组按数字升序进行排序。
Arrays.sort()
17、
Scanner cin = new Scanner(System.in);
while(cin.hasNext())
{
String[] tmp = cin.nextLine().split(" ");
if(tmp.equals("0 0 0 0"))
break;
int N = Integer.valueOf(tmp[0]);
int M = Integer.valueOf(tmp[1]);
int P = Integer.valueOf(tmp[2]);
int C = Integer.valueOf(tmp[3]);
18、栈顶一般用top==-1;
19、快排(poj2388是快速排序,博客收藏中有篇文章讲的很好)