Aplicación de Java en ACM y asuntos que requieren atención
Enlace original: https://www.xuebuyuan.com/3257862.html
0, marco básico
import java.oi.*;
import java.util.*
public class Main
{
public static void main(String args[])
{
Scanner cin = new Scanner(System.in));
}
}
1. Leer datos hasta el final del archivo
while (in.hasNext()) {
int n = in.nextInt();
System.out.println(n);
}
2. Entrada de Java
Leer un entero: int n = cin.nextInt ();
Equivalente a scanf ("% d", & n); o cin >> n;
Leer una cadena: String s = cin.next ();
Equivalente a scanf ("% s", s); o cin >> s;
Leer un número de coma flotante: double t = cin.nextDouble ();
Equivalente a scanf ("% lf", & t); o cin >> t;
Leer una línea completa: String s = cin.nextLine ();
Equivalente a gets (s); o cin.getline (...);
Para determinar si existe la siguiente entrada, puede usar cin.hasNext () o cin.hasNextInt () o cin.hasNextDouble ()
3. Salida de Java
La salida generalmente se puede usar directamente System.out.print () y System.out.println (), la primera no genera una nueva línea y la última genera.
String name = s.nextLine();
int age = s.nextInt();
System.out.println("姓名:" + name + " 年龄:" + age );
System.out.println(); //换行
4. Salida de punto flotante
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. Alta precisión de Java
importar 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 otro)
BigInteger restar (BigInteger otro)
BigInteger multiplicar (BigInteger otro)
BigInteger dividir (BigInteger otro)
BigInteger mod (BigInteger otro)
int compareTo (BigInteger otro)
static BigInteger valueOf ( BigInteger otro) x) *
Recuerda:
La clase BigInteger no puede realizar operaciones como ± y debe llamar a sus funciones miembro para realizar operaciones.
Además, la clase BigInteger no es un tipo extendido de int, por lo que el valor del tipo int no se puede asignar directamente a BigInteger.
El tipo BigInteger tiene sus propias constantes:
BigInteger.zero
BigInteger.one
6, cadena de Java
La clase String se usa para almacenar cadenas. Puede usar el método charAt para sacar un byte, y el recuento comienza desde 0:
String a = "Hola"; // a.charAt (1) = 'e'
Utilice el método de subcadena para obtener la subcadena, como en el ejemplo anterior
System.out.println (a.substring (0, 4)) // salida "Hell"
Tenga en cuenta que el carácter en la posición del segundo parámetro no está incluido. Si lo hace, la subcadena (a, b) siempre tendrá caracteres ba.
La concatenación de cadenas puede usar directamente el signo +, como
String a = "Hola";
Cadena b = "mundo";
System.out.println (a + "," + b + “!”); // salida "¡Hola, mundo!"
No es posible cambiar un solo carácter a través del método charAt
7, matriz de Java
La definición de la matriz:
int[] a = new int[100];
Inicialización de la matriz
Arrays.fill(a,0);
Es equivalente a memset (a, 0, sizeof (a)) en lenguaje C;
8. Algunas notas
Cuando utilice Netbeans para escribir programas Java, agregue automáticamente el paquete main; esta oración debe eliminarse al enviar preguntas.
La clase principal debe llamarse Main
Aunque Java es muy poderoso, no se puede confiar completamente en él, después de todo, C / C ++ sigue siendo el lenguaje principal de ACM / ICPC. Algunas preguntas se agotarán sin importar cómo las escriba en Java, puede usar Java para calcular los resultados y enviarlos en C / C ++.
Al enviar preguntas, su código debe ser el siguiente marco
import ………//相当于c++的include
public class Main {
public static…….//一些自己定义的函数
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
}
}
La sintaxis de Java sigue siendo muy similar a c / c ++, entonces. . Siéntete libre de escribir. .
/ *
Aceleración de entrada de 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());
}
}