【问题标题】:how to convert string array into integer array,ascending,descending,bubble,inputarea,outputarea如何将字符串数组转换为整数数组,升序,降序,冒泡,输入区,输出区
【发布时间】:2017-12-23 17:03:35
【问题描述】:

该程序的目标是要求用户在输入区域字段中键入任何数字,然后他/她将选择三个按钮中的任何一个(升序、降序或气泡)。 然后产品将在输出区域字段上输出。

现在我的问题区域 1.所以我会要求用户用逗号输入这样的数字(1,2,3,4,5)然后我使用拆分方法来否定逗号,但它始终是字符串值我怎么能将这些值转换为 int.2.我如何包含这些值以便我可以在之后使用它,例如将这些值放在这三个按钮上以用于升序、降序和冒泡排序。3.在用户选择这三个按钮之后如何我将这些 int 值转换为字符串值,以便可以在输出文本字段上正确输出。

对不起,我的语法错误。我是新手,我尽力通过在谷歌和其他论坛网站上搜索来找到这些答案,但没有运气。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JavaGui205 extends JPanel
{

    final JTextField inputarea,outputarea;
    final JButton asc,desc,bubble;
    int getsd;

  JavaGui205()
  {

      //initialize textfield and buttons
      inputarea=new JTextField("Inputarea",20);
      outputarea=new JTextField("Outputarea",20);
      asc=new JButton("Ascending");
      desc=new JButton("Descending");
      bubble=new JButton("BubbleSort");

      //adding function on fields
      inputarea.addActionListener(new ActionListener()
      {
          public void actionPerformed(ActionEvent e)
          {             
                  if(e.getSource()==inputarea)
            {
                String sd=inputarea.getText();
                String[] inputArray=sd.split(",\\s*");                              
            }

          }
      });

      //ascending function
      asc.addActionListener(new ActionListener()
      {
          public void actionPerformed(ActionEvent e)
          {

          }
      });

      //adding to frame
      add(inputarea);
      add(asc);
      add(desc);
      add(bubble);
      add(outputarea);
  }

  public static void main(String[]args)
  {
      JFrame frame = new JFrame("WTF");
      frame.add(new JavaGui205());
      frame.setVisible(true);
      frame.setSize(300,150);

  }
}

【问题讨论】:

    标签: java arrays swing events jframe


    【解决方案1】:

    如何将字符串数组转换为整数

    如果这是您的问题,那么问题描述的其余部分有何意义?如何获取数据以填充字符串数组并不相关。相关的只是你有一个代表数字的字符串数组。

    所以要学会简化问题,不要让你的问题变得如此混乱。

    您需要将每个字符串转换为整数,您可以使用Integer.parseInt(...) 方法来执行此操作。比如:

    String[] values = ...
    int[] numbers = new int[values.length];
    
    for (int i = 0; i < values.length; i++)
    {
        numbers[i] = Integer.parseInt( values[i] );
    }
    

    当您简化问题时,您可以简化答案,因为您只关注一件事,而不是整个应用程序。

    【讨论】:

    • 对于太多的问题,我很抱歉。下次我发布下一个问题时,我会提醒你说的话。 :D
    【解决方案2】:

    看看 Integer.parseInt(x) 方法:http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String) 。这将为您将 String 转换为整数类型。

    请记住,如果给定的字符串不是一个有效的整数,它将抛出一个未经检查的异常 NumberFormatException,因此您需要记住明确地捕获它并以适合您的应用程序的方式处理它。

    【讨论】:

    • 但是先生可以将字符串数组转换为 int 数组我试图将字符串转换为 int 它可以工作但数组它不是
    • Integer.parseInt 只会转换数组的单个元素。要转换整个数组,您可以使用类似: Integer[] out = Arrays.asList(in) .stream() .map(Integer::parseInt) .toArray(Integer[]::new);这会给你一个整数[]。如果你真的需要一个 int[],你可以用 Guava 的 Ints.toArray(Arrays.asList(in)) 转换它,或者只是用“老式”的方式迭代循环。跨度>
    【解决方案3】:

    要将字符串数组转换为 int 数组,可以使用以下代码。

    int c = 0;
    int[] fromStringArray = new int[inputArray.length];
    for(String i:inputArray)
    {
        String parseMe = i;
        try
        {
            int b = Integer.parseInt(parseMe);
            fromStringArray[c] = b;
        }
        catch(Exception e)
        {
            System.out.println("There was a problem changing a value");
        }
        c++;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-01
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 2016-12-02
      相关资源
      最近更新 更多