之前就学过一点java,但太久没用知识点早就还给书本,之前在实验室搞到一本java的书,今天来重新温习一下
java的语法大部分和c++语言是一样的,入门非常快,所以在这里基础语句的用法就省略了
输出:

System.out.println() 输出信息后追加一个换行
System.out.print()输出之后不追加换行

string:

str.IndexOf()//返回搜索的字符或字符串首次出现的位置
str.lastIndexOf()//返回搜索的字符或字符串最后一次的位置
charAt()//可将指定索引处的字符返回
trim()//返回字符串的副本,忽略前导空格和尾部空格
startsWith()//判断当前字符串对象的前缀是否为参数指定的字符串
endWith()//判断当前字符串是否为以给定的子字符串结束
toLowerCase()//把所有字符从大写字母改成小写字母
toUpperCase()//把所有字符从小写字母改成大写字母

java大数运算

在java中有个BigInteger类型,支持任意精度的整数,也就是说在运算中BigInteger类型可以准确地表示任何大小的整数值而不会丢失任何数据

public BigInteger add(BigInteger val)//做加法运算
public BigInteger subtract(BigInteger val)//做减法运算
public BigInteger multiply(BigInteger val)//做乘法运算
public BigInteger divide(BigInteger val)//做除法运算
public BigInteger remainder(BigInteger val)//做取余运算
public BigInteger negate(BigInteger val)//取相反数

BIgDecimal加入了小数的概念,支持任何精度的定点数,可以用它来精确计算货币值

public BigDecimal add(BigDecimal augend):做加法操作
subtract()做减法操作
multiply()做乘法操作
divide()做除法操作

大数阶乘:

import java.math.BigDecimal;
import java.util.Scanner;

public class Main{
public static BigDecimal factorial(BigDecimal n){ 
BigDecimal bd1 = new BigDecimal(1);//BigDecimal类型的1 
BigDecimal bd2 = new BigDecimal(2);//BigDecimal类型的2 
BigDecimal result = bd1;//结果集,初值取1 
while(n.compareTo(bd1) > 0){//参数大于1,进入循环 
result = result.multiply(n.multiply(n.subtract(bd1)));//实现result*(n*(n-1)) 
n = n.subtract(bd2);//n-2后继续 
} 
return result; 
}
    public static void main(String[] args){
        System.out.println("请输入阶乘数:");
        Scanner sc = new Scanner(System.in); 
        BigDecimal n = sc.nextBigDecimal(); 
        sc.close();
        System.out.print(n + "!=" + factorial(n));
    }
}
/*
大数的加减运算不同于普通整数的加减乘除运算
加—— a+b: a=a.add(b);
减—— a-b: a=a.subtract(b);
乘—— a*b: a=a.multiply(b);
除—— a/b: a=a.divide(b);
求余—a%b: a=a.mod(b);
转换—a=b: b=BigInteger.valueOf(a);
比较 if (ans.compareTo(x) == 0)//比较
    System.out.println("相等");
System.out.println("a + b = "+ans_add); // 这里的‘+’ (第二个) 是连接的意思
*/
package wkf;
import java.util.*;
import java.math.*;
public class Main {
    public static void main(String args[]) {
        Scanner cin = new Scanner(System.in);
        BigInteger a,b,x,y;
        BigInteger ans_add,ans_sub,ans_mul,ans_div,ans_mod;
        a=cin.nextBigInteger();
        b=cin.nextBigInteger();
        ans_add = a.add(b); //a+b
        ans_sub = a.subtract(b); //a-b
        ans_mul = a.multiply(b); //a*b
        ans_div = a.divide(b); //a/b
        ans_mod = a.mod(b); //a%b
        x=BigInteger.valueOf(1);//转换
        System.out.println("a + b = "+ans_add);
        System.out.println("a - b = "+ans_sub);
        System.out.println("a * b = "+ans_mul);
        System.out.println("a / b = "+ans_div);
        System.out.println("a % b = " + ans_mod);
        System.out.println(x);
        if (a.compareTo(b) == 0)//比较
            System.out.println("相等");
        else
             System.out.println("不相等");
    }
}

大数加法:

import java.math.BigInteger;
import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String args[])
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();        
        for(int i = 1; i <= n; ++i)
        {
            BigInteger a = in.nextBigInteger();
            BigInteger b = in.nextBigInteger();
            BigInteger ans = a.add(b);
            System.out.println("Case " + i + ":");
            System.out.println(a + " + " + b + " = " +ans);
        }
    }
}

之后继续更新