Java在ACM中的应用与注意事项
Java在ACM中的应用与注意事项
原文链接:https://www.xuebuyuan.com/3257862.html
0、基本框架
import java.oi.*; import java.util.* public class Main { public static void main(String args[]) { Scanner cin = new Scanner(System.in)); } }
1、读入数据直至文件结束
while (in.hasNext()) { int n = in.nextInt(); System.out.println(n); }
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(),前者不输出换行,而后者输出。
String name = s.nextLine(); int age = s.nextInt(); System.out.println("姓名:" + name + " 年龄:" + age ); System.out.println(); //换行
4、浮点数输出
import java.text.*; public class Main { public static void main(String[] args) { DecimalFormat g = new DecimalFormat("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 BigInteger valueOf(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 = new Scanner(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 =new Reader(System.in); double x = Reader.nextDouble(); int n = Reader.nextInt(); String str = Reader.next(); } } class Reader { final BufferedReader reader; StringTokenizer tokenizer; public Reader(InputStream input) { reader = new BufferedReader(new InputStreamReader(input)); tokenizer = new StringTokenizer(""); } public String next() throws IOException { while (!tokenizer.hasMoreTokens()) tokenizer = new StringTokenizer(reader.readLine()); return tokenizer.nextToken(); } public int nextInt() throws IOException { return Integer.parseInt(next()); } public double nextDouble() throws IOException { return Double.parseDouble(next()); } }
- HDU-A+B Problem 的Java题解 用Java语言做ACM的注意事项
- 允许某个应用发送通知设置及java字符串分割注意事项
- java应用部署到mysql注意事项
- 牛客网Java刷题知识点之匿名对象、匿名对象的内存结构图、匿名对象的应用场景、匿名对象的使用、匿名对象的简单例子、匿名对象要注意的事项
- java学习日记_37:方法重写的应用和注意事项
- kill 命令在Java应用中使用注意事项
- kill命令在Java应用中使用的注意事项小结
- JAVA学习第二十课(异常的应用和注意事项(三))
- Java反射在Android中的应用,以及注意事项
- Java利用HttpClient模拟POST表单操作应用及注意事项
- kill 命令在Java应用中使用注意事项
- Java中4种“访问控制符,.多态,.数组的应用;数组的默认初始化;小知识;抽象类例子及注意事项,接口相关知识;
- java应用中方法改为synchronized后发布时的注意事项
- java 模拟 POST表单操作 HTTPCLIENT的应用 及注意事项
- JavaService应用中的注意事项
- Java模拟POST表单操作 HttpClient的应用及注意事项
- 调用javacomm20-win32API注意事项
- java的Calendar,获取月份少一月的问题及其它注意事项
- Java开发中 Redis设置Key/value的规则定义和注意事项
- java多参数方法注意事项