天天看點

java在ACM中的用法

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()  傳回帶指數的字元串表示