我正在为我正在创建的应用程序创建图形用户界面。基本上,这个JTextField用户必须输入整数。例如
25,50,80,90
现在,我有另外一个需要获取这些值并将它们放在int数组中的类。
我尝试了以下内容。
guiV = dropTheseText.getText().split(",");
在另一个类文件中我解除了String,但我不知道如何获取每个字符串的值。
最后我只是想尝试像
这样的东西int[] vD = {textfieldvaluessplitbycommahere};
Java仍然相当新,但这让我很疯狂。
答案 0 :(得分:0)
由于您是fairly new to Java
,而不是给您代码段,我只会给您一些指示:
答案 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;
}