acm基础JAVA实现_ACM JAVA 基础

ACM JAVA 基础

感谢各位大牛的JAVA总结博客,我根据个人“喜好”,在省赛前夕,对此进行“搜索”总结。

一、代码格式基础

类名默认为Main。

class Main{

voidsolve(){}

voiddfs(){}

publicstatic void main(String[] args){

Main a=new Main();

a.solve();

}

}

二、编码基础

输入:

声明一个输入对象cin;Scanner cin=newScanner(System.in);

输入一个int值:Int a=cin.nextInt();

输入一个大数:BigDecimala=cin.nextBigDecimal();

EOF结束:while(cin.hasNext()){。。。}

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

输出:

输出str【任意类型】:System.out.println(str);【有换行】System.out.print(str);【无换行】

System.out.println(”str“);【输出字符串str】

三、大整数基础

赋值:BigInteger a=new BigInteger(String.valueOf(12));

大数类特殊函数:

判断相等:c.compareTo(BigDecimal.ZERO)==0【c等于】

判断大于:c.compareTo(BigDecimal.ZERO)>0 【c大于0】

判断小于:c.compareTo(BigDecimal.ZERO)<0 【c小于0】

修改格式:c.stripTrailingZeros().toPlainString();【c去除末尾0,并转换乘字符串】

BigInteger的函数:

构造:public BigInteger(Stringstr)【把string类型数据转变为大整数】

构造:public BigIntegerpow(BigDecimal b)【b次方】

加:public BigIntegeradd(BigInteger b)【加上b】

减:public BigIntegersubtract(BigInteger b)【减去b】

乘:public BigInteger multiply(BigInteger b)【乘b】

除:public BigIntegerdivided(BigInteger b)【除b】

最大值:public BigIntegermax(BigInteger a)【返回最大值】

最小值:public BigIntegermin(BigInteger a)【返回最小值】

除:public BigInteger []dividedandRemainder(BigInteger b)【除b,数组第一位是商,第二位是余数】

四、高精度小数基础

BigDecimal的函数:

构造:public BigDecimal(Stringstr)【把string类型数据转变为高精度数】

public BigDecimal(int str)【把int 类型数据转变为大整数】

public BigDecimal(double str)【把double类型数据转变为大整数】

次方:public BigDecimal pow(BigDecimal b)【b次方】

加:public BigDecimaladd(BigDecimal b)【加上b】

减:public BigDecimalsubtract(BigDecimal b)【减去b】

乘:public BigDecimalmultiply(BigDecimal b)【乘b】

除:public BigIntegerdivided(BigInteger b)【除b】

去前导0:n.stripTrailingZeros();

去后导0:n.

五. 字符串

字符串函数:

str.startWith("0").【以0开始】str.endWith("0")【以0结束】

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!"

如想直接将字符串中的某字节改变,可以使用另外的StringBuffer类。

六、注意事项

(1)浮点数输出精确位控制

DecimalFormat g = new DecimalFormat("0.00");

double a = 123.45678;

System.out.println(g.format(a));        // 输出 123.46

还可用System.out.printf(“%.2f”,a);

(2) Java 里的数组有些变动,多维数组的内部其实都是指针,所以Java不支持fill多维数组。

数组定义后必须初始化,如 int[] a = newint[100];

(3) 布尔类型为 boolean,只有true和false二值,在 if (...) / while (...) 等语句的条件中必须为boolean类型。

在C/C++中的 if (n % 2) ... 在Java中无法编译通过。

(4) 下面在java.util包里Arrays类的几个方法可替代C/C++里的memset、qsort/sort和 bsearch:

Arrays.fill()

Arrays.sort()

Arrays.binarySearch()

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值