1

我需要将值添加到 int 数组中。

    int[] placeHolders[];

现在我不知道要添加到这个数组中的元素的大小。我在输入时添加它。我想知道如何将我的字符串输出值反复转换为 int 数组。

输入:23.45.1.34

我正在使用字符串标记化。获得代币

Value = Integer.parseInt(strtokObject.nextElement().toString());

我正在使用上面的行将 int 添加到单个 int 值,但是如果我需要将 int 元素添加到数组中,就像推入向量(C++ STL)一样,我无法做到。

4

5 回答 5

5
String str = "23.45.1.34";
String sarr = str.split("\\.");
int[] result = new int[sarr.length];
for (int i = 0;  i < sarr.length;  i++) {
    result[i] = Integer.parseInt(s);
}
于 2012-09-20T07:44:28.573 回答
2

当您不知道要存储在数组中的数据集的大小时,您应该使用java.util.List<E>诸如ArrayList.

ArrayList<Integer> placeHolderList = new ArrayList<Integer>();
int value = Integer.parseInt(strtokObject.nextElement().toString());
placeHolderList.add(value); // adds the int to the underlying array

然后,如有必要,您可以使用 List#toArray 将列表转换为数组。

于 2012-09-20T07:45:25.567 回答
2

我会使用myString.split("\\.")返回 a String[],创建一个相等的 size int[],然后将每个 String 解析为一个 int 而不是使用分词器。您还可以placeHolders通过计算字符串中的 '.'(例如,myString.replaceAll("[^\\.]", "").length())来知道 的大小(显然在该数字上加一)。

于 2012-09-20T07:45:27.110 回答
1

我假设您的输入字符串是input.

所以你可以做这样的事情:

String[] inputStrs = input.split("\\.");

//Do a while loop
placeholder[i] = Integer.ParseIne(inputStrs[i]);
于 2012-09-20T07:46:47.433 回答
0

您可以使用ArrayList<Integer>类似于 C++ 中的向量的。添加到它使用aList.add(num);

如果你想要一个数组,你可以在最后使用该toArray方法。

Integer[] arr = aList.toArray(new Integer[0]);
于 2012-09-20T07:47:41.737 回答