java在ACM中的用法

来源:互联网 发布:十一选五遗漏数据 编辑:程序博客网 时间:2024/04/27 23:05
1、Java的语法和C++几乎相同
2、Java在执行计算密集任务的时候并不比C/C++慢多少,只是IO操作较慢而已
3、Java简单而功能强大,有些东西用Java实现起来更为方便
      a、比如输入输出
      b、字符串解析
      c、高精度
4、Java不易犯细微的错误
5、C/C++中的指针
6、“if (n = m) ... ”
7、Java与Eclipse


import java.util.*; //需要导入的包

public class Main{//main方法

  publicstatic void main (String[] args) {

  method1();

  Scanner cin = new Scanner(System.in);

  method2(cin.nextInt());

  …

  }

  staticvoid method1(){//方法

  }

  staticint method2(int a){//方法

  }

  …

}


1、JavaI/O
a、JDK1.5.0新增的Scanner类很适合用于AMC/ICPC的输入
吧、使用Scanner类的一般步骤
F1.导入Scanner类

importjava.util.Scanner;

F2.创建Scanner类的对象

Scannercin=new Scanner(System.in); //从标准输入读入数据

Scannercin=new Scanner(“12 30”)); //从字符串读入数据

F3.使用Scanner类的对象读入各种类型的数据

cin.nextInt()

cin.nextDouble();


Scanner类的用法

1、读入数据

int  n = cin.nextInt();          scanf("%d",&n);         cin>>n;

String s  = cin.next();        scanf("%s",s);            cin>>s;

double t = cin.nextDouble       scanf("%lf",&t);    cin>>t;

String s = cin.nextLine();           gets(s);            cin.getline();

BigDecimal b = cin.nextBigDecimal();

2、判断是否还有数据

cin.hasNext()或cin.hasNextInt()或cin.hasNextDouble();


Scanner类的用法

//TOJ-1001

importjava.util.*;

publicclass Main{

  public static void main(String[] args){

  Scanner sc=new Scanner(System.in);

  while(sc.hasNext()){

  char ch=(char)sc.nextInt();

  System.out.print(ch);

  }

  }

}


1、输出
a、用DecimalFormat类控制浮点数小数位数
b、import  java.text. DecimalFormat;
c、控制方法
2、构造特定的DecimalFormat对象

DecimalFormatf=new DecimalFormat(“#.00#”);

构造函数中的参数是模式字符串,0指一位数字,#指除0以外的数字

n使用DecimaFormat对象格式化需要输出的浮点数

System.out.println(f.format(12.1234));

举例

importjava.text.*;

publicclass decimalformat{

  public static void main(String[] args){

  DecimalFormat f = newDecimalFormat("#.00#");

  DecimalFormat g = newDecimalFormat("0.000");

  double a = 123.4509, b = 0.12;

  System.out.println(f.format(a));//123.451

  System.out.println(g.format(a));//123.451

  System.out.println(f.format(b));//.12

  System.out.println(g.format(b));//0.120

  }

}


1、格式化输出的另一种方法是利用System.out.printf(“格式字符串”,…),其用法和c的printf基本一致

inta=10;

floatb=2.35f;

System.out.printf("%d%10.5f\n", a, b); 


2、字符串(String)
a、String类常用方法
b、构造字符串
1》String s=“abcde”;
2》char[] chs={‘a’,’b’,’c’,’d’,’e’};

Strings=new String(chs);

c、取得字符串中某个字符
1》char ch=s.charAt(1);  //ch=‘b’;
3求子串
a、System.out.println(s.substring(0,3)) // output “abc"
b、System.out.println(s.substring(1,3)) // output “bc"
c、System.out.println(s.substring(1))// output “bcde"

1、String类常用方法
a、拆分字符串

Strings=“123:34:55”;

String[]ss = s.split(“:”);

for(inti=0;i<ss.length;i++)  System.out.println(ss[i]);

b、替换字符串

Strings=“2009-07-26”;

System.out.println(s.replace(‘-’,’//’) ); //输出2009/07/26

Strings=“0.123456”;

System.out.println(s.replaceAll(“^0”,””) ); //输出.123456


BigDecimal类常用方法
BigDecimaladd(BigDecimal augend)  “+”
BigDecimalsubtract(BigDecimal subtrahend)  “-”
BigDecimalmultiply(BigDecimal multiplicand)  “*”
BigDecimaldivide(BigDecimal divisor)  “/”
BigDecimalremainder(BigDecimal divisor)  “%”
BigDecimalpow(int n)  “求幂”
StringtoPlainString()  返回不带指数的字符串表示
StringtoString()  返回带指数的字符串表示