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);
}
}
}
}

最新文章

  1. paip.mysql 全文索引查询空白解决
  2. 开源Launcher - Wox 出炉了
  3. 问题解决——使用串口调试助手发送控制字符 协议指令 &lt;ESC&gt;!?
  4. node.js安装及grunt插件,如何进行脚本压缩
  5. 四种必须知道的Android屏幕自适应解决方案
  6. 《Javascript权威指南》学习笔记之十八:BOM新成就(1)--client存储数据(Web SQL DataBase实现)
  7. hdu 2444
  8. HDU4325--Flowers--树状数组,离散化
  9. 平衡二叉树(AVL树)
  10. zabbix-server端与zabbix-agent端部署与监控
  11. Apache、Lighttpd、Nginx 三种web服务器对比
  12. R语言︱关联规则+时间因素=序贯关联规则
  13. 关于对ProgressBar定义模板的一些总结
  14. JPA-style positional param was not an integral ordinal
  15. App云测试服务对比
  16. webpack相关
  17. (二)Linux Shell编程——运算符、注释
  18. .net core +codefirst(.net core 基础入门,适合这方面的小白阅读) 【我们一起写框架】领域驱动设计的CodeFirst框架(一)—序篇
  19. 线上服务器PHP版本编译安装升级全记录
  20. 【bzoj1572】[Usaco2009 Open]工作安排Job 贪心+堆

热门文章

  1. 深入浅出Redis(三)高级特性:管道
  2. spring理解一
  3. [iOS] dom解析xml数据,拿到&amp;lt;&amp;gt;里面的值
  4. 纯C语言实现简单封装继承机制
  5. C语言将10进制转为2进制
  6. iOS视频流开发(2) — 视频播放
  7. UITableViewController的子控件不随着滑动
  8. Xcode The identity used to sign the executable is no longer valid. 错误解决
  9. 不同节点 IP 时间同步 分布式时间同步系统的参考时间获取技术分析
  10. Package vim is not available, but is referred to by another package及我的vim配置