菜鸟提问:我想把JTextField中输入的数组读出,但是它是以字符串形式读出的,如何转化为数组呢?
例如:JTextField文本中显示的是"23,0,2,3,4,0,6,0,2",我用text.getText()读出,是String类型,我要转化为int i[],使数组i中的元素为i[9]={23,0,2,3,4,0,6,0,2}.

解决方案 »

  1.   

    先用Split分割text.getText(),然后转化即可
      

  2.   

    import javax.swing.*;
    import java.awt.BorderLayout;
    import java.util.StringTokenizer;
    public class Test extends JFrame
    {
    private int[] iData = new int[]{1,23,2,2,3,4,2,1,23,4,23};
    private int[] iData2;
    private JTextField tf;public Test()
    {
    JTextField tf = new JTextField(15);
    getContentPane().add(tf,BorderLayout.SOUTH);// 显示数组
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < iData.length; i ++){
    sb.append(String.valueOf(iData[i]));if (i != iData.length - 1)
    sb.append(",");
    }
    tf.setText(sb.toString());// 转换为数组
    StringTokenizer st = new StringTokenizer(tf.getText(), ",");
    iData2 = new int[st.countTokens()];for (int i = 0; st.hasMoreTokens(); i ++) {
            iData2[i] = Integer.parseInt(st.nextToken());
    }// 打印出来
    for (int i = 0; i < iData2.length; i ++)
    System.out.println(iData2[i]);setSize(400,500);
    setVisible(true);
    }public static void main(String[] args)
    {
    Test app = new Test();app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }}
      

  3.   

    另:  iData2[i] = Integer.parseInt(st.nextToken()); 可添加捕获NumberFormatException异常,以增加程序健壮性