0

学生 id 的格式是 xxXXXxxxxxx(xx=2 digit, XXX=3 char, xxxxx=5 digit) 我声明一个字符串为 stuid="11WAD03245" 我需要将 stuid 分隔为 "11" 和 "WAD" 和 "03245"其中 11 设置为 Jcombobox 年份和年份的模型是从 11 到 20 WAD 设置为另一个 Jcombobox prog,其模型是 WAD 等等 03245 设置为文本字段代码

4

4 回答 4

0

参考:Java 字符串

String stuid = "11WAD03245";
int studentId = Integer.parseint(stuid.substring(0,2));
String prog = stuid.substring(2,5);
int model = Integer.parseint(stuid.substring(5,stuid.length()));

您可以使用这些变量分别设置您的 Jcomboboxes。

于 2013-11-10T13:35:49.063 回答
0

您可以使用substring()函数来获取字符串的所需部分。

句法: substring(int strartIndex,int endIndex);

例子 :

String str="hello world";
String word= str.substring(0,5);//returns->  hello

代码如下:

String stuid="11WAD03245";
String stuid1=stuid.substring(0, 2); //returns 11   
String stuid2=stuid.substring(2,5);  //returns WAD 
String stuid3=stuid.substring(5);  //returns 03245
于 2013-11-10T13:36:01.203 回答
0

使用 String.substring(beginIndex, endIndex) 这将返回包含您的值的新字符串,您可以从中解析不同类型的数据类型。

于 2013-11-10T13:37:27.207 回答
0

这里的所有答案都是正确的。我想更进一步,尽管这不是您所要求的。在我看来,您存储 id 的格式非常脆弱,可以轻松改进以支持未来的更改并且更易于使用。

当您依赖索引时,您假设字段是恒定长度的。如果这种情况发生变化——你就有麻烦了。一种更强大的方法是使用分隔值列表,其中保存一个字符串,其中字段由逗号或任何分隔符分隔。

关于您的案例的示例:“11,WAD,03245”

这为您提供了 3 个优势。您不需要处理索引算法,您不受字段长度的限制,您可以轻松地使用 split 方法分别获取每个字段。像这样:

    String s = "11,WAD,03245";
    String[] fields = s.split(","); 
    // fields[0] == "11", fields[1] == "WAD", fields[2] == "03245"

当然,您需要处理分隔符本身出现在某个字段中的情况,但您通常可以通过选择适当的分隔符并使用输入验证来缓解这种情况。

即使我只能依赖恒定的字段长度,我也会选择这种方法,因为它更容易操作。

于 2013-11-10T14:09:58.400 回答