Bootstrap

JAVA常用类Arrays、String

Arrays工具类

java.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。

下面列举一些常用的方法:

  • 给数组赋值:通过 fill() 方法。
  • 接受两个参数Arrays.fill(int[] a, int val)。这个形式用于将数组 a 中的所有元素设置为 val 值。例如,int[] arr = new int; Arrays.fill(arr, 10); 会将 arr 数组中的所有元素设置为 10

  • 接受四个参数Arrays.fill(int[] a, int fromIndex, int toIndex, int val)。这个形式用于将数组 a 中从 fromIndex(包含)到 toIndex(不包含)的元素设置为 val 值。例如,int[] arr = new int; Arrays.fill(arr, 3, 5, 20); 会将 arr 数组中索引为 3 和 4 的元素设置为 20,而索引为 5 的元素保持不变。

  • 对数组排序:通过 sort() 方法,按升序。
  • 比较数组:通过 equals() 方法比较数组中元素值是否相等。
  • 数组转换:通过 asList() 将数组转换为 List (你可以在以后的章节里来学习 List)。
import java.util.Arrays;

public class Solution {
    public void myMethod() {
        // 声明三个数组
        int arr1[] = new int[3];
        int arr2[] = new int[3];
        int arr3[] = new int[3];
        
        // 为数组赋值
        Arrays.fill(arr1,1);
        Arrays.fill(arr2,1);
        Arrays.fill(arr3,2);

        // 判断 arr1 和 arr2 是否相等、arr1 和 arr3 是否相等
        System.out.println("数组arr1和数组arr2是否全等:" + Arrays.equals(arr1,arr2));
        System.out.println("数组arr1和数组arr3是否全等:" + Arrays.equals(arr1,arr3));

        // 输出 arr3 的内容
        System.out.print("数组arr3:");
        for (int i = 0; i < 3; i++) {
            System.out.print(arr3[i] + " ");
        }
    }
}

String

public class Solution {
    public void myMethod(){
        String str = "lintcode";
        char ch = str.charAt(0);
        System.out.println("lintcode的第一字母是:" + ch);

        String str1 = "lintcode";
        String str2 = "lintcode";
        boolean rs = str1.equals(str2);
        System.out.println("字符串str1和字符串str2是否相等:" + rs);

        rs = str.startsWith("lint");
        System.out.println("lintcode是否以lint开头:"+rs);

        rs = str.endsWith("code");
        System.out.println("lintcode是否以code 结尾:"+rs);

        str = "lintcodecode";
        int index = str.indexOf("co");
        System.out.println("lintcodecode中co的下表位置:"+index);
    }
}

常用的 String 方法

1.2.1、char charAt(int index)

它返回指定索引处的字符。指定的索引值应介于 0 到 length() -1 之间,包括两端值。如果 index < 0 或 index >= String.length() 的长度,它会抛出 IndexOutOfBoundsException

示例:

String str = "lintcode";
char ch = str.charAt(0);	// ch 的值为 l 
1.2.2、boolean equals(Object obj)

将字符串与指定的字符串进行比较,如果两者都匹配则返回 true,否则返回 false
示例:

String str1 = "lintcode";
String str2 = "lintcode";
boolean rs = str1.equals(str2);		// rs 的值为 true
1.2.3、boolean startsWith(String prefix)

它测试字符串是否具有指定的前缀,如果是,则返回 true 否则返回 false

示例:

String str = "lintcode";
boolean rs = str.startsWith("lint");	 // rs 的值为 true
1.2.4、boolean endsWith(String suffix)

检查字符串是否以指定的后缀结尾。

示例:

String str = "lintcode";
boolean rs = str.endsWith("code");	 // rs 的值为 true
1.2.5、int indexOf(String str)

此方法返回指定子字符串 str 第一次出现的索引。若 str 没有出现过,则返回值为 -1

示例:

String str = "lintcodecode";
int index = str.indexOf("co");		// index 的值为 4

1、int lastIndexOf(String str)

返回字符串 str 最后一次出现的索引。

示例:

String str = "lintcodecode";
int index = str.lastIndexOf("co");		// index 的值为 8

2、String substring(int beginIndex, int endIndex)

返回子字符串。子串以 beginIndex 处的字符开始,以 endIndex 处的字符结束。

示例:

String str = "lintcode";
String s = str.substring(0,4);		// s 的值为 lint

3、String concat(String str)

在字符串的末尾连接指定的字符串 “str”。

示例:

String str1 = "hello ";
String str2 = "lintcode";
String s = str1.concat(str2);		// s 的值为 hello lintcode

4、String replace(char oldChar, char newChar)

它在用 newChar 更改 oldChar 的所有出现后返回新的更新字符串。

示例:

String str = "clintcodec";
String s = str.replace('c','a');	// s 的值为 alintaodea

5、String toUpperCase()

将字符串转成全大写,等效于 toUpperCase(Locale.getDefault())

示例:

String str = "lintcode";
String s = str.toUpperCase();		// s 的值为 LINTCODE

6、String toLowerCase()

将字符串转成全小写,等效于 toLowerCase(Locale.getDefault())

示例:

String str = "LINTCODE";
String s = str.toLowerCase();		// s 的值为 lintcode

7、String[] split(String regex)

与 split(String regex, int limit) 方法相同,但它没有任何阈值限制。

示例:

String str = "a&b&c&d";
String arr[] = str.split("&");		// arr 的值为 ["a", "b", "c", "d"]

8、String trim()

从原始字符串中省略前导和尾随空格后返回子字符串。

示例:

String str = " lintcode ";
String s = str.trim();			// s 的值为 lintcode

9、int length()

它返回字符串的长度。

示例:

String str = "lintcode";
int len = str.length();		// len 的值为 8

其他方法

  • boolean equalsIgnoreCase(String string):它的工作原理与 equals 方法相同,但在比较字符串时不考虑大小写。它进行不区分大小写的比较。

  • int compareTo(String string):此方法根据字符串中每个字符的 Unicode 值比较两个字符串。

  • int compareToIgnoreCase(String string):与 CompareTo 方法相同,但它在比较过程中忽略大小写。

  • boolean startsWith(String prefix, int offset):它检查子字符串(从指定的偏移索引开始)是否具有指定的前缀。

  • int hashCode():它返回字符串的哈希码。

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

  • int indexOf(int ch, int fromIndex):与 indexOf 方法相同,但它从指定的 fromIndex 开始在字符串中搜索。

  • int lastIndexOf(int ch):它返回字符串中最后一次出现的字符 ch

  • int lastIndexOf(int ch, int fromIndex):与 lastIndexOf(int ch) 方法相同,它从 fromIndex 开始搜索。

  • String substring(int beginIndex):它返回字符串的子字符串。子字符串以指定索引处的字符开头。

  • boolean contains(CharSequence s):它检查字符串是否包含指定的字符值序列。如果是,则返回 true 否则返回 false。它抛出 NullPointerException of 's' is null

  • String toUpperCase(Locale locale):使用指定语言环境定义的规则将字符串转换为大写字符串。

  • public String intern():该方法在内存池中搜索指定的字符串,如果找到则返回它的引用,否则它将内存空间分配给指定的字符串并为其分配引用。

  • public boolean isEmpty():如果给定字符串的长度为 0,则此方法返回 true。如果指定的 Java 字符串的长度不为零,则返回 false

  • String[] split(String regex, int limit):它拆分字符串并返回与给定正则表达式匹配的子字符串数组。limit 是这里的结果阈值。

  • String toLowerCase(Locale locale):它使用给定语言环境定义的规则将字符串转换为小写字符串。

  • public static String format():这个方法返回一个格式化的 String

  • static String copyValueOf(char[] data):它返回一个包含指定字符数组字符的字符串。

  • static String copyValueOf(char[] data, int offset, int count):与上面的方法相同,但有两个额外的参数——子数组的初始偏移量和子数组的长度。

  • void getChars(int srcBegin, int srcEnd, char[] dest, int destBegin):将 src 数组的字符复制到 dest 数组。只有指定的范围被复制(srcBegin 到 srcEnd)到 dest 子数组(从 destBegin 开始)。

  • boolean contentEquals(StringBuffer sb):它将字符串与指定的字符串缓冲区进行比较。

  • boolean regionMatches(int srcoffset, String dest, int destoffset, int len):它将输入的子字符串与指定字符串的子字符串进行比较。

  • boolean regionMatches(boolean ignoreCase, int srcoffset, String dest, int destoffset, int len): regionMatches 方法的另一种变体,带有额外的布尔参数来指定比较是区分大小写还是不区分大小写。

  • byte[] getBytes(String charsetName):它使用指定的字符集编码将字符串转换为字节序列,并返回结果字节数组。

  • byte[] getBytes():此方法类似于上述方法,只是使用默认字符集编码将字符串转换为字节序列。

  • int codePointAt(int index):它类似于 charAt 方法,但它返回指定索引的 Unicode 代码点值而不是字符本身。

  • public static String join():此方法使用指定的分隔符连接给定的字符串并返回连接的 Java 字符串。

  • String replaceAll(String regex, String replacement):它将所有出现的符合正则表达式正则表达式的子字符串替换为替换字符串。

  • String replaceFirst(String regex, String replacement):它用指定的替换字符串替换第一个符合给定正则表达式 “regex” 的子字符串。

  • boolean matches(String regex):它检查字符串是否与指定的正则表达式 正则表达式匹配 。

  • static String valueOf():此方法返回传递参数的字符串表示形式,例如 intlongfloatdoublechar 和 char 数组。

  • char[] toCharArray():将字符串转换为字符数组。

import java.util.Arrays;

public class Solution {
    /**
     * @param str: Arbitrary non-empty string
     * @return String in alphabetical ascending order
     */
    public String handle(String str) {
        // write your code here
        char[] ch = str.toCharArray();
        Arrays.sort(ch);
        // 将数组转化成字符串
        return String.valueOf(ch);
        }
    }

;