可以使用 java 中的 StringBuilder 类将 char 数组转换为 String。StringBuilder 类也位于 Java 的java.lang包中。字符串是字符串类的对象。同样,StringBuilder 是StringBuilder类的对象。
StringBuilder还存储一个字符序列。String 和StringBuilder之间的主要区别在于String 是不可变的,而 StringBuilder 是可变的。这意味着我们可以更改或更新 StringBuilder,这与 String 不同。由于StringBuilder是可变的,我们可以通过迭代从 char 数组中追加字符。在这个过程结束时,我们将得到一个字符串,它存储了 char 数组中的所有字符。
注意:在 java 中,可变对象是可以通过添加新值或任何其他状态来更改的对象。在可变对象的情况下,更改会反映在同一个现有对象中,并且不会创建新对象。
不可变对象是那些一旦创建就不能更改的对象。在这些对象中所做的每一次更改都会创建一个新对象。
语法: StringBuilder 可以声明如下:
StringBuilder sb = new StringBuilder();
示例: 在此示例中,我们将遍历 char 数组并将其所有元素附加到StringBuilder中。这会将 char 数组转换为 java 中的字符串,这是我们需要的输出。
//Java program to convert character array to string //using StringBuilder class. class DemoCharArrayToString{ public static void main(String args[]) { //character array char ch_arr[] = {'J','a','v','a',' ','P','r','o','g','r','a','m'}; //Creating object of StringBuilder class //and passing character array to its constructor StringBuilder sb_obj = new StringBuilder(); //Creating string using append method for(int i = 0; i < ch_arr.length; i++) { sb_obj.append(ch_arr[i]); } //Printing output in form of string System.out.println("StringBuilder: "+ sb_obj); } }
输出:
StringBuilder: Java Program
在上面的 Java 程序中,sb_obj是一个 StringBuilder。for() 循环用于遍历字符数组ch_arr ,并使用append()方法将ch_arr 的所有元素添加到 sb_obj 。由于 StringBuilder 是可变的,我们可以更改它的值,并且append()方法在最后添加每个新元素。
当我们遍历数组时,上面的代码将具有O(n)的时间复杂度。此外,代码将创建数组的防御副本,同时将其转换为字符串,导致空间复杂度为O(n)。这里n表示要转换的字符数组的大小。