JAVA in ACM

文章出处 http://java.chinaitlab.com/base/953012_2.html


1、基本框架

  import java.oi.*;

  import java.util.*

  public class Main

  {

  public static void main(String args[])

  {

  Scanner cin = newScanner(System.in));

  }

  }

  2、Java的输入

  读一个整数: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(…);

  判断是否有下一个输入可以用 cin.hasNext() 或 cin.hasNextInt() 或cin.hasNextDouble()

  3、Java的输出

  输出一般可以直接用 System.out.print() 和 System.out.println(),前者不输出换行,而后者输出。

  System.out.printf()的使用方法类似于C语言的printf();

  4、浮点数输出

  import java.text.*;

  public class Main

  {

  public static void main(String[] args)

  {

  DecimalFormat g = newDecimalFormat("0.00");

  double a = 123.45678;

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

  }

  }

  //输出为123.46

  5、Java的高精度

  import java.math.* // 需要引入 java.math 包

  BigInteger a =BigInteger.valueOf(100);

  BigInteger b =BigInteger.valueOf(50);

  BigInteger c = a.add(b)   // c = a + b;

  //主要有以下方法可以使用:

  BigInteger add(BigInteger other)

  BigInteger subtract(BigInteger other)

  BigInteger multiply(BigInteger other)

  BigInteger divide(BigInteger other)

  BigInteger mod(BigInteger other)

  int compareTo(BigInteger other)

  static BigIntegervalueOf(long x)

  切记:

  BigInteger类不可进行+-这样的运算,要调用其成员函数进行运算。

  另外BigInteger类不是int 的扩展类型,所以不能把int类型值直接赋值给BigInteger.

  BigInteger类型有自己的常量:

  BigInteger.zero

  BigInteger.one

  6、Java的字符串

  String 类用来存储字符串,可以用charAt方法来取出其中某一字节,计数从0开始:

  String a ="Hello";    // a.charAt(1) = 'e'

  用substring方法可得到子串,如上例

  System.out.println(a.substring(0, 4))    // output "Hell"

  注意第2个参数位置上的字符不包括进来。这样做使得s.substring(a, b) 总是有 b-a个字符。

  字符串连接可以直接用 + 号,如

  String a ="Hello";

  String b ="world";

  System.out.println(a + ", " + b + "!");   // output "Hello, world!"

  不可以通过charAt方法改变某一单个字符

7、Java的数组

  数组的定义:

  int[] a = new int[100];

  数组的初始化

  Arrays.fill(a,0);

  相当于C语言中的memset(a,0,sizeof(a));

  8、一些注意事项

  使用Netbeans写Java程序的时候用自动添加package main;交题的时候要去掉这句话。

  主类必须命名为 Main

  虽然Java功能很强大,但不能完全依赖他,毕竟C/C++还是ACM/ICPC的主流语言。有些题目无论Java怎么写都会超时,可以用Java计算出结果然后用C/C++打表提交。

  交题时,你的代码应该是如下框架

  import ……//相当于c++的include

  public class Main {

  public static……//一些自己定义的函数

  public static void main(String[] args) {

  Scanner cin = newScanner(System.in);

  }

  }

  Java的语法与c/c++还是很相似的,所以放心写吧

  /*

  Java输入加速

  用BufferedReader和StringTokenizer代替Scanner

  */

  import java.io.*;

  import java.util.*;

  public class Main {

  public static void main(String[] args) throws IOException {

  Reader Reader =newReader(System.in);

  double x =Reader.nextDouble();

  int n = Reader.nextInt();

  String str = Reader.next();

  }

  }

  class Reader {

  final BufferedReaderreader;

  StringTokenizertokenizer;

  public Reader(InputStream input) {

  reader = newBufferedReader(new InputStreamReader(input));

  tokenizer = newStringTokenizer("");

  }

  public String next() throws IOException {

  while (!tokenizer.hasMoreTokens())

  tokenizer = newStringTokenizer(reader.readLine());

  returntokenizer.nextToken();

  }

  public int nextInt() throws IOException {

  return Integer.parseInt(next());

  }

  public double nextDouble() throws IOException {

  returnDouble.parseDouble(next());

  }

  }

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值