JTextField到int []数组?

时间:2013-06-23 00:39:37

标签: java arrays swing jtextfield parseint

我正在为我正在创建的应用程序创建图形用户界面。基本上,这个JTextField用户必须输入整数。例如

25,50,80,90

现在,我有另外一个需要获取这些值并将它们放在int数组中的类。

我尝试了以下内容。

guiV = dropTheseText.getText().split(",");

在另一个类文件中我解除了String,但我不知道如何获取每个字符串的值。

最后我只是想尝试像

这样的东西
int[] vD = {textfieldvaluessplitbycommahere};

Java仍然相当新,但这让我很疯狂。

5 个答案:

答案 0 :(得分:0)

由于您是fairly new to Java,而不是给您代码段,我只会给您一些指示:

  1. 使用String类:它有一个将String拆分为字符串数组的方法。
  2. 然后使用Integer类:它有一个将String转换为int的方法。

答案 1 :(得分:0)

你不能直接这样做,你可能需要添加一个方法来将你的字符串数组转换为int数组。像这样:

public int[] convertStringToIntArray(String strArray[]) {
    int[] intArray = new int[strArray.length];
    for(int i = 0; i < strArray.length; i++) {
        intArray[i] = Integer.parseInt(strArray[i]);
    }
    return intArray;
}

将你的guiV传递给这个方法并返回int数组

答案 2 :(得分:0)

一个简单的解决方案是功能帽进行转换:

public static int[] convertTextFieldCommaSeparatedIntegerStringToIntArray(String fieldText) {
    String[] tmp = fieldText.split(",");
    int[] result = new int[tmp.length];

    for(int i = 0; i < tmp.length; i++) {
        result[i] = Integer.parseInt(tmp[i].trim());
    }

    return result;
}

基本方法是:

split用于在逗号处拆分原始输入。

parseInt用于转换字符串 - &gt; INT。 Integer的valueOf函数是一个选项,但是你必须转换String - &gt;整数 - &gt;中间体


注意:

您应该使用trim来消除空格。此外,您应该捕获parseInt抛出的NumberFormatException。作为未经检查的异常,您不需要捕获它,但是检查用户输入并在必要时清理它是明智的。

答案 3 :(得分:0)

private JTextField txtValues = new JTextField("25, 50, 80, 90"); 

// Strip the whitespaces using a regex since they will throw errors
// when converting to integers
String values = txtValues.getText().replaceAll("\\s","");

// Get the inserted values of the text field and use the comma as a separator.
// The values will be returned as a string array
private String[] strValues = values.split(",");

// Initialize int array
private int[] intValues = new int[strValues.length()];
// Convert each string value to an integer value and put it into the integer array
for(int i = 0; i < strValues.length(); i++) {
    try {
       intValues[i] = Integer.parseInt(strValues[i]);
    } catch (NumberFormatException nfe) {
       // The string does not contain a parsable integer.
    }

}

答案 4 :(得分:0)

试试这段代码:

public int[] getAsIntArray(String str)
{
    String[] values = str.getText().split(",");
    int[] intValues = new int[values.length];
    for(int index = 0; index < values.length; index++)
    {
        intValues[index] = Integer.parseInt(values[index]);
    }
    return intValues;
}