• Java在ACM中的应用


    Java在ACM中的应用

     

    —. 在java中的基本头文件(java中叫包)

    import java.io.*;

    import java.util.*; //输入Scanner

    import java.math.*; //BigInteger && BigDecimal

    二. 输入与输出

    读入: Scanner cin = new Scanner (System.in);

    推荐:Scanner cin = new Scanner (new BufferedInputStream (System.in));

    Scanner cin = new Scanner(System.in);

       类名  对象名      构造函数    参数

    Scanner类提供了非常丰富的成员函数来负责读取各种数据类型:

    返回值              成员函数

    boolean hasNext()

    相当于C++的!=EOF

    String          next(String pattern)

                            如果下一个标记与从指定字符串构造的模式匹配,则返回下一个标记,

                            如果参数为空,就是读取一个字符串

    BigDecimal      nextBigDecimal()

                            将输入信息的下一个标记扫描为一个 BigDecimal。

    BigInteger      nextBigInteger()

                            将输入信息的下一个标记扫描为一个 BigInteger。

    boolean         nextBoolean()

                            扫描解释为一个布尔值的输入标记并返回该值。

    byte            nextByte()

                            将输入信息的下一个标记扫描为一个 byte。

    double          nextDouble()

                            将输入信息的下一个标记扫描为一个 double。

    float           nextFloat()

                            将输入信息的下一个标记扫描为一个 float。

    int             nextInt()

                            将输入信息的下一个标记扫描为一个 int。

    String          nextLine()

                            此扫描器执行当前行,并返回跳过的输入信息。

    long            nextLong()

                            将输入信息的下一个标记扫描为一个 long。

    short           nextShort()

                            将输入信息的下一个标记扫描为一个 short。

    对于输出浮点数保留几位小数的问题,可以使用DecimalFormat类, 
    import java.text.*; 
    DecimalFormat f = new DecimalFormat("#.00#"); 
    DecimalFormat g = new DecimalFormat("0.000"); 
    double a = 123.45678, b = 0.12; 
    System.out.println(f.format(a)); //123.457
    System.out.println(f.format(b)); //.12
    System.out.println(g.format(b)); //0.120

    System.out.print(); // cout << …;

    System.out.println(); //与C++的cout << … <<endl;

    System.out.printf(); //与C中的printf用法类似.

    三. 定义变量

    定义单个变量:

    int a,b,c;      //和C++ 中无区别

    BigInteger a;   //定义大数变量a

    BigInteger b = new BigInteger ("2");   //定义大数变量 b赋值为 2;

    BigDecimaln;     //定义大浮点数类 n;

    boolean : 布尔值,仅有两个值,true和false.

    byte :字节类型值,长度8位(一个字节),范围-128至127。

    short:短整型值,长度16位(两个字节),范围-32768至32767。

    int:整型值,长度32位(四个字节),范围-2147483648至2147483647

    long:长整型,长度64位(八个字节),范围-9223372036854775808至9223372036854775807

    float:单精度浮点数,长度32位(四个字节)。

    double:双精度浮点数,长度64位(八个字节)。

    char:字符型,长度16位,支持所有的UCS-2和ASCII编码。

    除了以上的8种基本数据类型,对于ACMer还有BigInteger,BigDecimal,String三个类经常使用.

    四.写法

    import java.math.*;

    import java.io.*;

    import java.util.*;

    public class Main {

        public static void main(String[] args) {

        }

    }

    五.注意事项
    (1) Java 是面向对象的语言,思考方法需要变换一下,里面的函数统称为方法,不要搞错。 

    (2) Java 里的数组有些变动,多维数组的内部其实都是指针,所以Java不支持fill多维数组。数组定义后必须初始化,如 int[] a = new int[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() 

     

     

    BigInteger

    java.math
    类 BigInteger

    java.lang.Object

      java.lang.Number

          java.math.BigInteger

    所有已实现的接口:

    Serializable, Comparable<BigInteger>

    public class BigInteger

    extends Number

    implements Comparable<BigInteger>

    不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。

    算术运算的语义完全模仿 Java 整数算术运算符的语义,如 The Java Language Specification 中所定义的。例如,以零作为除数的除法抛出 ArithmeticException,而负数除以正数的除法则产生一个负(或零)的余数。Spec 中关于溢出的细节都被忽略了,因为 BigIntegers 所设置的实际大小能适应操作结果的需要。

    位移操作的语义扩展了 Java 的位移操作符的语义以允许产生负位移距离。带有负位移距离的右移操作会导致左移操作,反之亦然。忽略无符号的右位移运算符(>>>),因为该操作与由此类提供的“无穷大的词大小”抽象结合使用时毫无意义。

    逐位逻辑运算的语义完全模仿 Java 的逐位整数运算符的语义。在执行操作之前,二进制运算符(and、or、xor)对两个操作数中的较短操作数隐式执行符号扩展。

    比较操作执行有符号的整数比较,类似于 Java 的关系运算符和相等性运算符执行的比较。

    提供的模算术操作用来计算余数、求幂和乘法可逆元。这些方法始终返回非负结果,范围在 0 和 (modulus - 1)(包括)之间。

    位操作对其操作数的二进制补码表示形式的单个位进行操作。如有必要,操作数会通过扩展符号来包含指定的位。单一位操作不能产生与正在被操作的 BigInteger 符号不同的 BigInteger,因为它们仅仅影响单个位,并且此类提供的“无穷大词大小”抽象可保证在每个 BigInteger 前存在无穷多的“虚拟符号位”数。

     

    字段摘要

    static BigInteger

    ONE 
              BigInteger 的常量 1。

    static BigInteger

    TEN 
              BigInteger 的常量 10。

    static BigInteger

    ZERO 
              BigInteger 的常量 0。

    构造方法摘要

    BigInteger(byte[] val) 
              将包含 BigInteger 的二进制补码表示形式的 byte 数组转换为 BigInteger。

    BigInteger(int signum, byte[] magnitude) 
              将 BigInteger 的符号-数量表示形式转换为 BigInteger。

    BigInteger(int bitLength, int certainty, Random rnd) 
              构造一个随机生成的正 BigInteger,它可能是一个具有指定 bitLength 的素数。

    BigInteger(int numBits, Random rnd) 
              构造一个随机生成的 BigInteger,它是在 0 到 (2numBits - 1)(包括)范围内均匀分布的值。

    BigInteger(String val) 
              将 BigInteger 的十进制字符串表示形式转换为 BigInteger。

    BigInteger(String val, int radix) 
              将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。

    方法摘要

     BigInteger

    abs() 
              返回其值是此 BigInteger 的绝对值的 BigInteger。

     BigInteger

    add(BigInteger val) 
              返回其值为 (this + val) 的 BigInteger。

     BigInteger

    and(BigInteger val) 
              返回其值为 (this & val) 的 BigInteger。

     BigInteger

    andNot(BigInteger val) 
              返回其值为 (this & ~val) 的 BigInteger。

     int

    bitCount() 
              返回此 BigInteger 的二进制补码表示形式中与符号不同的位的数量。

     int

    bitLength() 
              返回此 BigInteger 的最小的二进制补码表示形式的位数,不包括 符号位。

     BigInteger

    clearBit(int n) 
              返回其值与清除了指定位的此 BigInteger 等效的 BigInteger。

     int

    compareTo(BigInteger val) 
              将此 BigInteger 与指定的 BigInteger 进行比较。

     BigInteger

    divide(BigInteger val) 
              返回其值为 (this / val) 的 BigInteger。

     BigInteger[]

    divideAndRemainder(BigInteger val) 
              返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。

     double

    doubleValue() 
              将此 BigInteger 转换为 double。

     boolean

    equals(Object x) 
              比较此 BigInteger 与指定的 Object 的相等性。

     BigInteger

    flipBit(int n) 
              返回其值与对此 BigInteger 进行指定位翻转后的值等效的 BigInteger。

     float

    floatValue() 
              将此 BigInteger 转换为 float。

     BigInteger

    gcd(BigInteger val) 
              返回一个 BigInteger,其值是 abs(this) 和 abs(val) 的最大公约数。

     int

    getLowestSetBit() 
              返回此 BigInteger 最右端(最低位)1 比特的索引(即从此字节的右端开始到本字节中最右端 1 比特之间的 0 比特的位数)。

     int

    hashCode() 
              返回此 BigInteger 的哈希码。

     int

    intValue() 
              将此 BigInteger 转换为 int。

     boolean

    isProbablePrime(int certainty) 
              如果此 BigInteger 可能为素数,则返回 true,如果它一定为合数,则返回 false。

     long

    longValue() 
              将此 BigInteger 转换为 long。

     BigInteger

    max(BigInteger val) 
              返回此 BigInteger 和 val 的最大值。

     BigInteger

    min(BigInteger val) 
              返回此 BigInteger 和 val 的最小值。

     BigInteger

    mod(BigInteger m) 
              返回其值为 (this mod m) 的 BigInteger。

     BigInteger

    modInverse(BigInteger m) 
              返回其值为 (this-1 mod m) 的 BigInteger。

     BigInteger

    modPow(BigInteger exponent, BigInteger m) 
              返回其值为 (thisexponent mod m) 的 BigInteger。

     BigInteger

    multiply(BigInteger val) 
              返回其值为 (this * val) 的 BigInteger。

     BigInteger

    negate() 
              返回其值是 (-this) 的 BigInteger。

     BigInteger

    nextProbablePrime() 
              返回大于此 BigInteger 的可能为素数的第一个整数。

     BigInteger

    not() 
              返回其值为 (~this) 的 BigInteger。

     BigInteger

    or(BigInteger val) 
              返回其值为 (this | val) 的 BigInteger。

     BigInteger

    pow(int exponent) 
              返回其值为 (thisexponent) 的 BigInteger。

    static BigInteger

    probablePrime(int bitLength, Random rnd) 
              返回有可能是素数的、具有指定长度的正 BigInteger。

     BigInteger

    remainder(BigInteger val) 
              返回其值为 (this % val) 的 BigInteger。

     BigInteger

    setBit(int n) 
              返回其值与设置了指定位的此 BigInteger 等效的 BigInteger。

     BigInteger

    shiftLeft(int n) 
              返回其值为 (this << n) 的 BigInteger。

     BigInteger

    shiftRight(int n) 
              返回其值为 (this >> n) 的 BigInteger。

     int

    signum() 
              返回此 BigInteger 的正负号函数。

     BigInteger

    subtract(BigInteger val) 
              返回其值为 (this - val) 的 BigInteger。

     boolean

    testBit(int n) 
              当且仅当设置了指定的位时,返回 true。

     byte[]

    toByteArray() 
              返回一个 byte 数组,该数组包含此 BigInteger 的二进制补码表示形式。

     String

    toString() 
              返回此 BigInteger 的十进制字符串表示形式。

     String

    toString(int radix) 
              返回此 BigInteger 的给定基数的字符串表示形式。

    static BigInteger

    valueOf(long val) 
              返回其值等于指定 long 的值的 BigInteger。

     BigInteger

    xor(BigInteger val) 
              返回其值为 (this ^ val) 的 BigInteger。

    BigDecimal

    java.math
    类 BigDecimal

    java.lang.Object

      java.lang.Number

          java.math.BigDecimal

    所有已实现的接口:

    Serializable, Comparable<BigDecimal>

    public class BigDecimal

    extends Number

    implements Comparable<BigDecimal>

    不可变的、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次幂。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。

    BigDecimal 类提供以下操作:算术、标度操作、舍入、比较、哈希算法和格式转换。toString() 方法提供 BigDecimal 的规范表示形式。

    字段摘要

    static BigDecimal

    ONE 
              值为 1,标度为 0。

    static int

    ROUND_CEILING 
              接近正无穷大的舍入模式。

    static int

    ROUND_DOWN 
              接近零的舍入模式。

    static int

    ROUND_FLOOR 
              接近负无穷大的舍入模式。

    static int

    ROUND_HALF_DOWN 
              向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。

    static int

    ROUND_HALF_EVEN 
              向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。

    static int

    ROUND_HALF_UP 
              向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。

    static int

    ROUND_UNNECESSARY 
              断言请求的操作具有精确的结果,因此不需要舍入。

    static int

    ROUND_UP 
              舍入远离零的舍入模式。

    static BigDecimal

    TEN 
              值为 10,标度为 0。

    static BigDecimal

    ZERO 
              值为 0,标度为 0。

    构造方法摘要

    BigDecimal(BigInteger val) 
              将 BigInteger 转换为 BigDecimal。

    BigDecimal(BigInteger unscaledVal, int scale) 
              将 BigInteger 非标度值和 int 标度转换为 BigDecimal。

    BigDecimal(BigInteger unscaledVal, int scale, MathContext mc) 
              将 BigInteger 非标度值和 int 标度转换为 BigDecimal(根据上下文设置进行舍入)。

    BigDecimal(BigInteger val, MathContext mc) 
              将 BigInteger 转换为 BigDecimal(根据上下文设置进行舍入)。

    BigDecimal(char[] in) 
              将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列。

    BigDecimal(char[] in, int offset, int len) 
              将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列,同时允许指定子数组。

    BigDecimal(char[] in, int offset, int len, MathContext mc) 
              将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列,同时允许指定子数组,并根据上下文设置进行舍入。

    BigDecimal(char[] in, MathContext mc) 
              将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符序列(根据上下文设置进行舍入)。

    BigDecimal(double val) 
              将 double 转换为 BigDecimal,后者是 double 的二进制浮点值准确的十进制表示形式。

    BigDecimal(double val, MathContext mc) 
              将 double 转换为 BigDecimal(根据上下文设置进行舍入)。

    BigDecimal(int val) 
              将 int 转换为 BigDecimal。

    BigDecimal(int val, MathContext mc) 
              将 int 转换为 BigDecimal(根据上下文设置进行舍入)。

    BigDecimal(long val) 
              将 long 转换为 BigDecimal。

    BigDecimal(long val, MathContext mc) 
              将 long 转换为 BigDecimal(根据上下文设置进行舍入)。

    BigDecimal(String val) 
              将 BigDecimal 的字符串表示形式转换为 BigDecimal。

    BigDecimal(String val, MathContext mc) 
              将 BigDecimal 的字符串表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造方法相同的字符串(按照上下文设置进行舍入)。

    方法摘要

     BigDecimal

    abs() 
              返回 BigDecimal,其值为此 BigDecimal 的绝对值,其标度为 this.scale()。

     BigDecimal

    abs(MathContext mc) 
              返回其值为此 BigDecimal 绝对值的 BigDecimal(根据上下文设置进行舍入)。

     BigDecimal

    add(BigDecimal augend) 
              返回一个 BigDecimal,其值为 (this + augend),其标度为 max(this.scale(), augend.scale())。

     BigDecimal

    add(BigDecimal augend, MathContext mc) 
              返回其值为 (this + augend) 的 BigDecimal(根据上下文设置进行舍入)。

     byte

    byteValueExact() 
              将此 BigDecimal 转换为 byte,以检查丢失的信息。

     int

    compareTo(BigDecimal val) 
              将此 BigDecimal 与指定的 BigDecimal 比较。

     BigDecimal

    divide(BigDecimal divisor) 
              返回一个 BigDecimal,其值为 (this / divisor),其首选标度为 (this.scale() - divisor.scale());如果无法表示准确的商值(因为它有无穷的十进制扩展),则抛出 ArithmeticException。

     BigDecimal

    divide(BigDecimal divisor, int roundingMode) 
              返回一个 BigDecimal,其值为 (this / divisor),其标度为 this.scale()。

     BigDecimal

    divide(BigDecimal divisor, int scale, int roundingMode) 
              返回一个 BigDecimal,其值为 (this / divisor),其标度为指定标度。

     BigDecimal

    divide(BigDecimal divisor, int scale, RoundingMode roundingMode) 
              返回一个 BigDecimal,其值为 (this / divisor),其标度为指定标度。

     BigDecimal

    divide(BigDecimal divisor, MathContext mc) 
              返回其值为 (this / divisor) 的 BigDecimal(根据上下文设置进行舍入)。

     BigDecimal

    divide(BigDecimal divisor, RoundingMode roundingMode) 
              返回一个 BigDecimal,其值为 (this / divisor),其标度为 this.scale()。

     BigDecimal[]

    divideAndRemainder(BigDecimal divisor) 
              返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟对两个操作数计算所得到的 remainder。

     BigDecimal[]

    divideAndRemainder(BigDecimal divisor, MathContext mc) 
              返回由两个元素组成的 BigDecimal 数组,该数组包含 divideToIntegralValue 的结果,后跟根据上下文设置对两个操作数进行舍入计算所得到的remainder 的结果。

     BigDecimal

    divideToIntegralValue(BigDecimal divisor) 
              返回 BigDecimal,其值为向下舍入所得商值 (this / divisor) 的整数部分。

     BigDecimal

    divideToIntegralValue(BigDecimal divisor, MathContext mc) 
              返回 BigDecimal,其值为 (this / divisor) 的整数部分。

     double

    doubleValue() 
              将此 BigDecimal 转换为 double。

     boolean

    equals(Object x) 
              比较此 BigDecimal 与指定的 Object 的相等性。

     float

    floatValue() 
              将此 BigDecimal 转换为 float。

     int

    hashCode() 
              返回此 BigDecimal 的哈希码。

     int

    intValue() 
              将此 BigDecimal 转换为 int。

     int

    intValueExact() 
              将此 BigDecimal 转换为 int,以检查丢失的信息。

     long

    longValue() 
              将此 BigDecimal 转换为 long。

     long

    longValueExact() 
              将此 BigDecimal 转换为 long,以检查丢失的信息。

     BigDecimal

    max(BigDecimal val) 
              返回此 BigDecimal 和 val 的最大值。

     BigDecimal

    min(BigDecimal val) 
              返回此 BigDecimal 和 val 的最小值。

     BigDecimal

    movePointLeft(int n) 
              返回一个 BigDecimal,它等效于将该值的小数点向左移动 n 位。

     BigDecimal

    movePointRight(int n) 
              返回一个 BigDecimal,它等效于将该值的小数点向右移动 n 位。

     BigDecimal

    multiply(BigDecimal multiplicand) 
              返回一个 BigDecimal,其值为 (this × multiplicand),其标度为 (this.scale() + multiplicand.scale())。

     BigDecimal

    multiply(BigDecimal multiplicand, MathContext mc) 
              返回其值为 (this × multiplicand) 的 BigDecimal(根据上下文设置进行舍入)。

     BigDecimal

    negate() 
              返回 BigDecimal,其值为 (-this),其标度为 this.scale()。

     BigDecimal

    negate(MathContext mc) 
              返回其值为 (-this) 的 BigDecimal(根据上下文设置进行舍入)。

     BigDecimal

    plus() 
              返回 BigDecimal,其值为 (+this),其标度为 this.scale()。

     BigDecimal

    plus(MathContext mc) 
              返回其值为 (+this) 的 BigDecimal(根据上下文设置进行舍入)。

     BigDecimal

    pow(int n) 
              返回其值为 (thisn) 的 BigDecimal,准确计算该幂,使其具有无限精度。

     BigDecimal

    pow(int n, MathContext mc) 
              返回其值为 (thisn) 的 BigDecimal。

     int

    precision() 
              返回此 BigDecimal 的精度

     BigDecimal

    remainder(BigDecimal divisor) 
              返回其值为 (this % divisor) 的 BigDecimal。

     BigDecimal

    remainder(BigDecimal divisor, MathContext mc) 
              返回其值为 (this % divisor) 的 BigDecimal(根据上下文设置进行舍入)。

     BigDecimal

    round(MathContext mc) 
              返回根据 MathContext 设置进行舍入后的 BigDecimal。

     int

    scale() 
              返回此 BigDecimal 的标度

     BigDecimal

    scaleByPowerOfTen(int n) 
              返回其数值等于 (this * 10n) 的 BigDecimal。

     BigDecimal

    setScale(int newScale) 
              返回一个 BigDecimal,其标度为指定值,其值在数值上等于此 BigDecimal 的值。

     BigDecimal

    setScale(int newScale, int roundingMode) 
              返回一个 BigDecimal,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。

     BigDecimal

    setScale(int newScale, RoundingMode roundingMode) 
              返回 BigDecimal,其标度为指定值,其非标度值通过此 BigDecimal 的非标度值乘以或除以十的适当次幂来确定,以维护其总值。

     short

    shortValueExact() 
              将此 BigDecimal 转换为 short,以检查丢失的信息。

     int

    signum() 
              返回此 BigDecimal 的正负号函数。

     BigDecimal

    stripTrailingZeros() 
              返回数值上等于此小数,但从该表示形式移除所有尾部零的 BigDecimal。

     BigDecimal

    subtract(BigDecimal subtrahend) 
              返回一个 BigDecimal,其值为 (this - subtrahend),其标度为 max(this.scale(), subtrahend.scale())。

     BigDecimal

    subtract(BigDecimal subtrahend, MathContext mc) 
              返回其值为 (this - subtrahend) 的 BigDecimal(根据上下文设置进行舍入)。

     BigInteger

    toBigInteger() 
              将此 BigDecimal 转换为 BigInteger。

     BigInteger

    toBigIntegerExact() 
              将此 BigDecimal 转换为 BigInteger,以检查丢失的信息。

     String

    toEngineeringString() 
              返回此 BigDecimal 的字符串表示形式,需要指数时,则使用工程计数法。

     String

    toPlainString() 
              返回不带指数字段的此 BigDecimal 的字符串表示形式。

     String

    toString() 
              返回此 BigDecimal 的字符串表示形式,如果需要指数,则使用科学记数法。

     BigDecimal

    ulp() 
              返回此 BigDecimal 的 ulp(最后一位的单位)的大小。

     BigInteger

    unscaledValue() 
              返回其值为此 BigDecimal 的非标度值 的 BigInteger。

    static BigDecimal

    valueOf(double val) 
              使用 Double.toString(double) 方法提供的 double 规范的字符串表示形式将 double 转换为 BigDecimal。

    static BigDecimal

    valueOf(long val) 
              将 long 值转换为具有零标度的 BigDecimal。

    static BigDecimal

    valueOf(long unscaledVal, int scale) 
              将 long 非标度值和 int 标度转换为 BigDecimal。

    String

    java.lang
    类 String

    java.lang.Object

      java.lang.String

    所有已实现的接口:

    Serializable, CharSequence, Comparable<String>

    public final class String

    extends Object

    implements Serializable, Comparable<String>, CharSequence

    String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。

    字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。例如:

         String str = "abc";

     

    等效于:

         char data[] = {'a', 'b', 'c'};

         String str = new String(data);

     

    下面给出了一些如何使用字符串的更多示例:

         System.out.println("abc");

         String cde = "cde";

         System.out.println("abc" + cde);

         String c = "abc".substring(2,3);

         String d = cde.substring(1, 2);

     

    字段摘要

    static Comparator<String>

    CASE_INSENSITIVE_ORDER 
              一个对 String 对象进行排序的 Comparator,作用与 compareToIgnoreCase 相同。

    构造方法摘要

    String() 
              初始化一个新创建的 String 对象,使其表示一个空字符序列。

    String(byte[] bytes) 
              通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。

    String(byte[] bytes, Charset charset) 
              通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。

    String(byte[] ascii, int hibyte) 
              已过时。 该方法无法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset、字符集名称,或使用平台默认字符集的 String 构造方法。

    String(byte[] bytes, int offset, int length) 
              通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。

    String(byte[] bytes, int offset, int length, Charset charset) 
              通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。

    String(byte[] ascii, int hibyte, int offset, int count) 
              已过时。 该方法无法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset、字符集名称,或使用平台默认字符集的 String 构造方法。

    String(byte[] bytes, int offset, int length, String charsetName) 
              通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。

    String(byte[] bytes, String charsetName) 
              通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。

    String(char[] value) 
              分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。

    String(char[] value, int offset, int count) 
              分配一个新的 String,它包含取自字符数组参数一个子数组的字符。

    String(int[] codePoints, int offset, int count) 
              分配一个新的 String,它包含 Unicode 代码点数组参数一个子数组的字符。

    String(String original) 
              初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。

    String(StringBuffer buffer) 
              分配一个新的字符串,它包含字符串缓冲区参数中当前包含的字符序列。

    String(StringBuilder builder) 
              分配一个新的字符串,它包含字符串生成器参数中当前包含的字符序列。

    方法摘要

     char

    charAt(int index) 
              返回指定索引处的 char 值。

     int

    codePointAt(int index) 
              返回指定索引处的字符(Unicode 代码点)。

     int

    codePointBefore(int index) 
              返回指定索引之前的字符(Unicode 代码点)。

     int

    codePointCount(int beginIndex, int endIndex) 
              返回此 String 的指定文本范围中的 Unicode 代码点数。

     int

    compareTo(String anotherString) 
              按字典顺序比较两个字符串。

     int

    compareToIgnoreCase(String str) 
              按字典顺序比较两个字符串,不考虑大小写。

     String

    concat(String str) 
              将指定字符串连接到此字符串的结尾。

     boolean

    contains(CharSequence s) 
              当且仅当此字符串包含指定的 char 值序列时,返回 true。

     boolean

    contentEquals(CharSequence cs) 
              将此字符串与指定的 CharSequence 比较。

     boolean

    contentEquals(StringBuffer sb) 
              将此字符串与指定的 StringBuffer 比较。

    static String

    copyValueOf(char[] data) 
              返回指定数组中表示该字符序列的 String。

    static String

    copyValueOf(char[] data, int offset, int count) 
              返回指定数组中表示该字符序列的 String。

     boolean

    endsWith(String suffix) 
              测试此字符串是否以指定的后缀结束。

     boolean

    equals(Object anObject) 
              将此字符串与指定的对象比较。

     boolean

    equalsIgnoreCase(String anotherString) 
              将此 String 与另一个 String 比较,不考虑大小写。

    static String

    format(Locale l, String format, Object... args) 
              使用指定的语言环境、格式字符串和参数返回一个格式化字符串。

    static String

    format(String format, Object... args) 
              使用指定的格式字符串和参数返回一个格式化字符串。

     byte[]

    getBytes() 
              使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

     byte[]

    getBytes(Charset charset) 
              使用给定的 charset 将此 String 编码到 byte 序列,并将结果存储到新的 byte 数组。

     void

    getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin) 
              已过时。 该方法无法将字符正确转换为字节。从 JDK 1.1 起,完成该转换的首选方法是通过 getBytes() 方法,该方法使用平台的默认字符集。

     byte[]

    getBytes(String charsetName) 
              使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

     void

    getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
              将字符从此字符串复制到目标字符数组。

     int

    hashCode() 
              返回此字符串的哈希码。

     int

    indexOf(int ch) 
              返回指定字符在此字符串中第一次出现处的索引。

     int

    indexOf(int ch, int fromIndex) 
              返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。

     int

    indexOf(String str) 
              返回指定子字符串在此字符串中第一次出现处的索引。

     int

    indexOf(String str, int fromIndex) 
              返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。

     String

    intern() 
              返回字符串对象的规范化表示形式。

     boolean

    isEmpty() 
              当且仅当 length() 为 0 时返回 true。

     int

    lastIndexOf(int ch) 
              返回指定字符在此字符串中最后一次出现处的索引。

     int

    lastIndexOf(int ch, int fromIndex) 
              返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。

     int

    lastIndexOf(String str) 
              返回指定子字符串在此字符串中最右边出现处的索引。

     int

    lastIndexOf(String str, int fromIndex) 
              返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。

     int

    length() 
              返回此字符串的长度。

     boolean

    matches(String regex) 
              告知此字符串是否匹配给定的正则表达式。

     int

    offsetByCodePoints(int index, int codePointOffset) 
              返回此 String 中从给定的 index 处偏移 codePointOffset 个代码点的索引。

     boolean

    regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) 
              测试两个字符串区域是否相等。

     boolean

    regionMatches(int toffset, String other, int ooffset, int len) 
              测试两个字符串区域是否相等。

     String

    replace(char oldChar, char newChar) 
              返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。

     String

    replace(CharSequence target, CharSequence replacement) 
              使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。

     String

    replaceAll(String regex, String replacement) 
              使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。

     String

    replaceFirst(String regex, String replacement) 
              使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。

     String[]

    split(String regex) 
              根据给定正则表达式的匹配拆分此字符串。

     String[]

    split(String regex, int limit) 
              根据匹配给定的正则表达式来拆分此字符串。

     boolean

    startsWith(String prefix) 
              测试此字符串是否以指定的前缀开始。

     boolean

    startsWith(String prefix, int toffset) 
              测试此字符串从指定索引开始的子字符串是否以指定前缀开始。

     CharSequence

    subSequence(int beginIndex, int endIndex) 
              返回一个新的字符序列,它是此序列的一个子序列。

     String

    substring(int beginIndex) 
              返回一个新的字符串,它是此字符串的一个子字符串。

     String

    substring(int beginIndex, int endIndex) 
              返回一个新字符串,它是此字符串的一个子字符串。

     char[]

    toCharArray() 
              将此字符串转换为一个新的字符数组。

     String

    toLowerCase() 
              使用默认语言环境的规则将此 String 中的所有字符都转换为小写。

     String

    toLowerCase(Locale locale) 
              使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。

     String

    toString() 
              返回此对象本身(它已经是一个字符串!)。

     String

    toUpperCase() 
              使用默认语言环境的规则将此 String 中的所有字符都转换为大写。

     String

    toUpperCase(Locale locale) 
              使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。

     String

    trim() 
              返回字符串的副本,忽略前导空白和尾部空白。

    static String

    valueOf(boolean b) 
              返回 boolean 参数的字符串表示形式。

    static String

    valueOf(char c) 
              返回 char 参数的字符串表示形式。

    static String

    valueOf(char[] data) 
              返回 char 数组参数的字符串表示形式。

    static String

    valueOf(char[] data, int offset, int count) 
              返回 char 数组参数的特定子数组的字符串表示形式。

    static String

    valueOf(double d) 
              返回 double 参数的字符串表示形式。

    static String

    valueOf(float f) 
              返回 float 参数的字符串表示形式。

    static String

    valueOf(int i) 
              返回 int 参数的字符串表示形式。

    static String

    valueOf(long l) 
              返回 long 参数的字符串表示形式。

    static String

    valueOf(Object obj) 
              返回 Object 参数的字符串表示形式。

  • 相关阅读:
    精讲响应式WebClient第6篇-请求失败自动重试机制,强烈建议你看一看
    dubbo实战之三:使用Zookeeper注册中心
    dubbo实战之二:与SpringBoot集成
    dubbo实战之一:准备和初体验
    树莓派4B安装官方Ubuntu20 Server版(64位)
    JUnit5学习之八:综合进阶(终篇)
    纯函数
    函数式编程基本概念
    vscod使用指南
    实际使用Elasticdump工具对Elasticsearch集群进行数据备份和数据还原
  • 原文地址:https://www.cnblogs.com/Running-Time/p/5358443.html
Copyright © 2020-2023  润新知