![](/img/trans.png)
[英]how to create a string from char array by adding char by char in java
[英]How to create an append method for a char array in Java
我目前正在为 class 创建一个 TextLine class 的项目,它表示必须表示为字符数组的一行文本。
对于其中一种方法,我应该将一个字符串作为参数的参数,然后将该字符串 append 接收到我已经创建的 char 数组中。
我试图在网上搜索如何做到这一点,甚至是显示实现的 String 或 StringBuffer class 的示例,但由于我在 Google 的新手技能,我真的找不到任何有用的东西。
我在想的是,我首先必须将字符串转换为数组,然后以某种方式使用数组方法之一将每个 char 单独添加到 char 数组中。
这就是我所拥有的:
public void append(String fragment){
char[] temp = fragment.toCharArray();
}
我不太确定可以使用哪种数组方法,如果有的话。 有人可以帮我吗?
假设您的原始char[]
数组称为arr
。 然后你可以这样做:
public void append(String fragment){
arr = (new String(arr)+fragment).toCharArray();
}
这会将您的char[]
数组转换为String
,因此您可以使用+
运算符简单地将其连接到fragment
。 然后,您只需使用toCharArray()
将新String
转换回char[]
数组。
通常您会使用StringBuilder
作为 class 的内部存储,但我假设您需要有关如何执行此操作的基本细节。
基本流程是这样的:
这是代码(假设data
成员声明如下: char[] data = new char[0]
:
public void append(String fragment) {
char[] fragmentChars = fragment.toCharArray();
char[] newData = new char[data.length + fragmentChars.length];
System.arraycopy(data, 0, newData, 0, data.length);
System.arraycopy(fragmentChars, 0, newData, data.length, fragmentChars.length);
data = newData;
}
您可以使用 System.arraycopy 方法将一个数组的内容复制到另一个数组中。 我会把它作为一个练习来弄清楚细节。
作为替代方案,您可以尝试一种更直接的方法:
public class Test{
char[] arr;
public static void main(String[] args){
Test t = new Test();
t.arr = "hi ".toCharArray();
t.append(" and bye");
System.out.print(new String(t.arr));
}
public void append(String myString){
char[] toAppend = myString.toCharArray();
char[] newArr = new char[toAppend.length+arr.length];
for(int i = 0; i < arr.length; i++)
newArr[i] = arr[i];
for(int i = 0; i < toAppend.length-1; i++)
newArr[i+arr.length] = toAppend[i];
arr = newArr;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.