1、基本定义

import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args)
{
Scanner cin1 = new Scanner(System.in);
Scanner cin2 = new Scanner(new BufferedInputStream(System.in));
}
}

使用cin2进行输入的时候可能会比cin1快一些。

2、输入具体数据

  • (1)输入一个整数:int n = cin.nextInt();

  • (2)输入一个字符串:String s = cin.next();

  • (3)输入一个浮点数:double f = cin.nextDouble();

  • (4)读入一整行:String s = cin.nextLine();

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

3、基本输出

  • (1)System.out.print(); //类似于cout<<…….;

  • (2)System.out.println(); //类似于cout<<……<<endl;

  • (3)System.out.printf(); //类似于C中printf的功能

样例:

import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*; public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(new BufferedInputStream(System.in));
int a;
double b;
a = 12345;
b = 1.234567;
System.out.println(a + " " + b);
System.out.printf("%d %10.5f\n", a, b);
// 输入b为字宽为10,右对齐,保留小数点后5位,四舍五入.
}
}

输出结果:

12345 1.234567

12345 1.23457

4、要求具体精度的输出

  • (1)可以使用上面介绍的System.out.printf();

  • (2)对于输出浮点数要保留几位小数的问题,可以使用DecimalFormat类解决

import java.util.*;
import java.text.*; public class Main {
public static void main(String[] args) {
DecimalFormat f = new DecimalFormat("#.00#");
DecimalFormat g = new DecimalFormat("0.000");
// 这里的0指一位数字,#指除0以外的数字
double a = 123.456789, b = 0.123456;
System.out.println(f.format(a));
System.out.println(f.format(b));
System.out.println(g.format(a));
System.out.println(g.format(b));
}
}

输出结果:

123.457

.123

123.457

0.123

5、字符串的处理

  • (1)String

Java中字符串String是不可以修改的,要修改只能转换为字符数组。

String st = "abcdefg";

char[] ch;

ch = st.toCharArray(); // 字符串转换为字符数组.

6、高精度问题

7、大数问题

Java中有两个类BigDecimal(表示浮点数)和BigInteger(表示整数)

使用这两个类的时候需要加上import java.math.*;

  • Ⅰ基本函数:

    (1)valueOf(parament); 将参数转换为指定类型

例如:

int a = 3;

BigInteger b = BigInteger.valueOf(a);

即b = 3

String s = “1234”;

BigInteger b = BigInteger.valueOf(s);

即b = 1234

(2)add(); //大数加法

例如:

BigInteger a = new BigInteger(“11”);

BigInteger b = new BigInteger(“22”);

a.add(b);

即a = 33

(3)substract(); //减法

(4)multiply(); //乘法

(5)divided(); //相除取整

(6)remainder(); //取余

(7)pow(); //a.pow(b) = a ^ b

(8)gcd(); //最大公约数

(9)abs(); //绝对值

(10)negate(); //取反数

(11)mod(); //a.mod(b) = a % b = a.remainder(b)

(12)max(); min();

(13)public int compareTo(); //比较

(14)boolean equals(); //比较是否相等

(15)BigIntergerde 构造函数

一般用到以下两种:

BigInteger(String val);

将指定字符串转换为十进制表示形式;

BigInteger(String val,int radix);

将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger

例如:

BigInteger b = new BigInteger(“1010”,2);

System.out.println(b);

输出:10

  • Ⅱ.基本常量:

A=BigInteger.ONE //=1

B=BigInteger.TEN //=10

C=BigInteger.ZERO //=0

  • Ⅲ.基本操作

    1. 读入:
while(cin.hasNext()) //等同于!=EOF
{
int n;
BigInteger m;
n=cin.nextInt(); //读入一个int;
m=cin.BigInteger();//读入一个BigInteger;
System.out.print(m.toString());
System.out.print(m);
}
  • Ⅳ.运用

    四则预算:
import java.util.Scanner;
import java.math.*;
import java.text.*; public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
BigInteger a, b;
int c;
char op;
String s;
while (cin.hasNext()) {
a = cin.nextBigInteger();
s = cin.next();
op = s.charAt(0);
if (op == '+') {
b = cin.nextBigInteger();
System.out.println(a.add(b));
} else if (op == '-') {
b = cin.nextBigInteger();
System.out.println(a.subtract(b));
} else if (op == '*') {
b = cin.nextBigInteger();
System.out.println(a.multiply(b));
} else {
BigDecimal a1, b1, eps;
// 浮点数
String s1, s2, temp;
s1 = a.toString();
a1 = new BigDecimal(s1);
b = cin.nextBigInteger();
s2 = b.toString();
b1 = new BigDecimal(s2);
c = cin.nextInt();
// 接收精度控制,即保留几位小数的问题
eps = a1.divide(b1, c, 4);
if (c != 0) {
temp = "0.";
for (int i = 0; i < c; i++)
temp += "0";
DecimalFormat gd = new DecimalFormat(temp);
System.out.println(gd.format(eps));
} else
System.out.println(eps);
}
}
}
}

ACMer需要的 java基本知识的更多相关文章

  1. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  2. java基础知识小总结【转】

    java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...

  3. Java基础知识系列——String

    最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...

  4. 学习Spring必学的Java基础知识

    [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http: ...

  5. 学习android学习必备的java基础知识--四大内部类

    学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...

  6. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  7. java基础知识梳理

    java基础知识梳理 1 基本数据类型

  8. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  9. java基础理论知识的一些总结

    在学习Java初期,由于我们是刚开始接触Java,我们不仅需要牢牢掌握Java的基础理论知识,来为我们后面对Java更深层次的学习打好基础,而且我们需要养成编程人的思想习惯.来我们一起来探索Java基 ...

随机推荐

  1. GreenDao数据库的升级

    应用使用了GreenDao数据库,在版本升级的时候需要更改dao的字段,新增.修改.删除字段操作,如果直接删除原来的表的话那用户原来的一些数据就没有了,所以在更新数据库的时候需要做一次封装,把原来的数 ...

  2. C# Queue与RabbitMQ的爱恨情仇(文末附源码):Q与MQ消息队列简单应用(二)

    上一章我们讲了队列( Queue),这一章我们讲Message Queue消息队列,简称MQ. 定义: MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开 ...

  3. 一起talk C栗子吧(第一百回:C语言实例--使用信号量进行进程间同步与相互排斥一)

    各位看官们.大家好,上一回中咱们说的是进程间同步与相互排斥的样例,这一回咱们说的样例是:使用信号量进行进程间同步与相互排斥. 闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,信号量是由著名 ...

  4. cf246 ENew Reform (并查集找环)

    Berland has n cities connected by m bidirectional roads. No road connects a city to itself, and each ...

  5. SQL yog过期后教你怎么让他不过期

    打开注册表  安装sqlyog后,进入注册表编辑器,进入\HEYK_CURRENT_USER\Software\,找到以{}括起来的那项直接干掉! 1, regedit 2,修改 3,

  6. 使用JS对select标签进行联动选择

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  7. wampserver64安装时出现计算机缺少MCVR110.DLL无法安装等

    在安装wamp完成后运行出现上述问题,是因为wamp版本与DLL不对称.下面给出 wamp64位下载地址 http://www.onlinedown.net/soft/118187.htm vcred ...

  8. udhcp源码详解(四) 之租赁IP的管理

    Server端对于租赁出去的IP的管理是基于结构体dhcpOfferedAddr的,该结构体的定义是在leases.c文件里:(结构体的成员介绍说明见详解之数据结构) 1: struct dhcpOf ...

  9. react-loadable 进行代码分割的基本使用

    由上篇文章我们可以知道,我的项目,打包后的 js 是 7M 的,首屏就加载 7M 的文件虽然没什么特别大的缺点,但总不是最优的解决办法 因此我们用到了 react-router4 的 react-lo ...

  10. windows内存管理的机制以及优缺点

    分页存储管理基本思想:用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等.可将用户程序的任一页放在内存的任一块中,实现了离散分配. 分段存储管 ...