2016-07-25 130 views
-1

我试图做一个接受输入的小文本框,将其转换为int,然后返回pi的值中的该索引。例如,如果我输入6,我想返回9,因为3.14159第六个值是9.遇到问题charAt()

这是我到目前为止,它的工作原理,但结果没有任何意义。

这是唯一感兴趣的区域(注:输入是一个int):

 _tfield.addActionListener(new ActionListener(){ 

     @Override 
     public void actionPerformed(ActionEvent arg0) { 
      input = Integer.parseInt(_tfield.getText()); 
      _tfield.setText("Input: "+ input+" Output: "+ output(input)); 
     } 

     private int output(int input) { 
      String pi = Double.toString(Math.PI); 
      return pi.charAt(input+1); 

答案我得到的输入“5”是57,因为我不作任何意义米问它1个字符的价值。更奇怪的是,如果我从charAt参数中删除+1,(仍然输入5)我得到53.

我不知道什么是错,但我觉得它的charAt因为它总是很难使用。但是,我可能是错的,任何建议都会有所帮助。谢谢。

回答

0

因为你的方法private int output(int input);的返回类型是int这就是为什么它返回字符的ascii值。

将您的返回类型更改为char以获得所需的输出。

+0

让我知道如果这对你有用.. –

+0

解决了这个问题,谢谢! – Michael