Java - 将String Array修改为ArrayList <string> </string>

时间:2014-12-25 06:11:40

标签: java arrays string arraylist

int currentKeySize=8;

String message = new String();
message="This is a test message";   
String[] splitMessage = new String[currentKeySize];
Arrays.fill(splitMessage,"");

for (int i = 0; i < message.length(); ++i) {            
    splitMessage[i % splitMessage.length] += message.charAt(i);         
}
for (int i = 0; i < splitMessage.length; ++i) { 
    System.out.println(splitMessage[i]);
}

此代码接收一条消息并将其拆分为大小为8的数组,此时一个字符,因此char(0)转到String(0)... char(7)转换为String(7)和char(8) )回到String(0)。

我有整个程序围绕这个概念工作,它很棒......但是现在我必须动态修改currentKeySize,最好使用&#39; for&#39;循环所以从1或2(分裂数)到n(比如20分裂)。

我知道ArrayList&lt;字符串&gt;但是我没有太多运气,因为它对我来说是一个非常新的概念。我无法弄清楚如何让它以类似的方式与我在这里附加字符一起工作。

有人可以证明正确使用ArrayList&lt;字符串&gt;(不接受&lt;&gt;之间没有空格)以执行与上面发布的相同的方式?

任何帮助将不胜感激!

解决。 感谢micneer正是我所要求的=)。

4 个答案:

答案 0 :(得分:0)

您只需将分割字符串添加到ArrayList

即可

将列表初始化如下:

List<String> list=new ArrayList<String>();

后来又加入了以下内容:

list.add(spiltString);

ArrayList类扩展AbstractList并实现List接口。 ArrayList支持可根据需要增长的动态数组。

标准Java数组具有固定长度。创建数组后,它们无法增长或缩小,这意味着您必须事先知道数组将包含多少元素。

使用初始大小创建数组列表。超过此尺寸时,将自动放大该集合。删除对象后,阵列可能会缩小。

答案 1 :(得分:0)

您可以尝试这样做,希望能帮助您。

    int currentKeySize = 8;

    String message = new String();
    message="This is a test message";   
    List<String> list = new ArrayList<String>();

    for (int i = 0; i < currentKeySize; ++i) {
        list.add(i % currentKeySize, "");
    }
    for (int i = 0; i < message.length(); ++i) {      
        list.set(i % currentKeySize, list.get(i % currentKeySize) + message.charAt(i));
    }
    for (int i = 0; i < list.size(); ++i) { 
        System.out.println(list.get(i));
    }

答案 2 :(得分:0)

你可以这样做。所以你不必担心初始大小。

  String message = new String("This is a test message");
  String[] splitMessage =message.split("");

答案 3 :(得分:0)

public static void main(String[] args) {
    int currentKeySize=8;

    String EMPTY_STRING = "";
    String message = new String();
    message="This is a test message";   
    List<String> splitMessage = new ArrayList<String>();
    Collections.fill(splitMessage, EMPTY_STRING);
    for (int i = 0; i < message.length(); ++i) {            
        try {
            String str = splitMessage.get(i%currentKeySize) + message.charAt(i); 
            splitMessage.set(i%currentKeySize, str);
        } catch(IndexOutOfBoundsException e) {
            //Adding EMPTY_STRING will convert character to String.
            splitMessage.add(EMPTY_STRING+message.charAt(i));
        }
    }
    System.out.println(splitMessage);
}

我认为这段代码可以解决您的问题。