Java - String copyValueOf() 方法



描述

Java String copyValueOf() 方法返回一个表示指定数组中字符序列的字符串。它创建一个新数组并将字符插入其中。

copyValueOf() 方法是一个静态方法,这意味着可以直接使用类名本身访问它。

此方法具有两个多态变体,具有不同的参数:int, char [ ]。(以下是所有多态变体的语法)。

语法

以下是Java String copyValueOf() 方法的语法:

public static String copyValueOf(char[] data)// first syntax
public static String copyValueOf(char[] data, int offset, int count)// second syntax

参数

  • data − 这是字符数组。

  • offset − 子数组的初始偏移量。

  • count − 子数组的长度。

返回值

此方法返回一个包含字符数组中字符的字符串。

将字符数组复制到字符串示例

如果数组的字符不为空,则 copyValueOf() 方法返回一个表示 char 数组中字符的字符串。

在下面的程序中,我们创建一个值为'j','a','v' 和 'a' 的 char 数组。使用copyValueOf() 方法,我们尝试检索表示 char 数组中字符的字符串。

package com.tutorialspoint;

public class Demo {
   public static void main(String[] args) {
      
      // create an character array
      char ch[] = {'j','a','v','a'};
      System.out.print("The char array elements are: ");
      for(int i = 0; i<ch.length; i++) {
         System.out.print(ch[i] +  " ");
      }
      
      // using copyValueOf() method
      String str = String.copyValueOf(ch);
      
      // prints the string
      System.out.println("\nThe string represents the characters of the char array is: " + str);
   }
}

输出

执行上述程序后,将产生以下结果:

The char array elements are: j a v a 
The string represents the characters of the char array is: java

使用空字符数组时 copyValueOf() 方法引发异常示例

如果给定的字符数组为null,此方法将抛出NullPointerException

在下面的示例中,我们创建一个值为null 的 char 数组。使用copyValueOf() 方法,我们尝试检索表示给定 char 数组中字符的字符串。由于 char 数组为空,因此会抛出异常。

package com.tutorialspoint;

public class Demo {
   public static void main(String[] args) {
      try {
         
         // create an character array
         char ch[] = null;
         System.out.print("The char array elements are: ");
         for(int i = 0; i<ch.length; i++) {
            System.out.print(ch[i] +  " ");
         }
         
         // using copyValueOf() method
         String str = String.copyValueOf(ch);
         
         // prints the string
         System.out.println("The string represents the charcaters of the char array is: " + str);
      } catch(NullPointerException e) {
         e.printStackTrace();
         System.out.println("Exception: " + e);
      }
   }
}

输出

以下是上述程序的输出:

The char array elements are: java.lang.NullPointerException: Cannot read the array length because "ch" is null
	at com.tutorialspoint.Demo.main(Demo.java:9)
Exception: java.lang.NullPointerException: Cannot read the array length because "ch" is null

使用偏移量使用 copyValueOf() 方法复制字符数组示例

如果给定的 char 数组不为空,并且偏移量和计数参数值已传递给方法,则 copyValueOf() 方法将返回表示 char 数组中字符的字符串。

在此程序中,我们创建一个值为'H','E','L','L' 和 'O' 的 char 数组。使用copyValueOf() 方法,我们尝试检索表示 char 数组中字符的字符串,其中偏移量值为1,计数值为4

package com.tutorialspoint;

public class Demo {
   public static void main(String[] args) {
      try {
         
         // create an character array
         char ch[] = { 'H', 'E', 'L', 'L', 'O'};
         System.out.print("The char array elements are: ");
         for(int i = 0; i<ch.length; i++) {
            System.out.print(ch[i] +  " ");
         }
         
         //initialize the offset and count value
         int offset = 1, count = 4;
         System.out.println("\nThe offset and count values are: " + offset + " and " + count);
         // using copyValueOf() method
         String str = String.copyValueOf(ch, offset, count);
         
         // prints the string
         System.out.println("The string represents the characters of the char array is: " + str);
      } catch(IndexOutOfBoundsException e) {
         e.printStackTrace();
         System.out.println("Exception: " + e);
      }
   }
}

输出

上述程序产生以下输出:

The char array elements are: H E L L O 
The offset and count values are: 1 and 4
The string represents the characters of the char array is: ELLO	

使用无效偏移量时 copyValueOf() 方法引发异常示例

如果给定的偏移量值为负数,则 copyValueOf() 方法将抛出StringIndexOutOfBoundsException

在下面的程序中,我们创建一个值为'H','E','L','L' 和 'O' 的 char 数组。使用copyValueOf() 方法,我们尝试检索表示 char 数组中字符的字符串,其中偏移量值为-1,计数值为2。由于偏移量值为负数,因此会抛出异常。

package com.tutorialspoint;

public class Demo {
   public static void main(String[] args) {
      try {
         
         // create an character array
         char ch[] = { 'H', 'E', 'L', 'L', 'O'};
         System.out.print("The char array elements are: ");
         for(int i = 0; i<ch.length; i++) {
            System.out.print(ch[i] +  " ");
         }
         
         //initialize the offset and count value
         int offset = -1, count = 2;
         System.out.println("\nThe offset and count values are: " + offset + " and " + count);
         
         // using copyValueOf() method
         String str = String.copyValueOf(ch, offset, count);
         
         // prints the string
         System.out.println("The specified returned string is: " + str);
      } catch(IndexOutOfBoundsException e) {
         e.printStackTrace();
         System.out.println("Exception: " + e);
      }
   }
}

输出

执行上述程序后,将生成以下输出:

The char array elements are: H E L L O 
The offset and count values are: -1 and 2
java.lang.StringIndexOutOfBoundsException: offset -1, count 2, length 5
	at java.base/java.lang.String.checkBoundsOffCount(String.java:4589)
	at java.base/java.lang.String.rangeCheck(String.java:304)
	at java.base/java.lang.String.<init>(String.java:300)
	at java.base/java.lang.String.copyValueOf(String.java:4273)
	at com.tutorialspoint.String.Demo.main(Demo.java:17)
Exception: java.lang.StringIndexOutOfBoundsException: offset -1, count 2, length 5
java_lang_string.htm
广告