【问题标题】:Split Digits into an array [duplicate]将数字拆分为数组[重复]
【发布时间】:2016-07-03 21:03:17
【问题描述】:

我在 Java 中这样做

我想拆分整数的位数,

int Pin=125;

到一个数组,

int Pin_Extracted={Pin[0], Pin[1], Pin[2]};

代码:

import java.io.*;
class name {
    public static void main(String args[])throws IOException {
        InputStreamReader ir = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(ir);
        int Pin;
        String Names[][] ={ {"Mr.","Mrs.","Miss.","Dr.","Sir","Late","Professor","Gadha","Master","Teacher"},{"Abhigyan","Akashdeep","Anish","Adarsh","Ashutosh","","Anik","Shivam","",""},{"Saha","Mukkherjee","Pandey","Shaw","Bannerjee","Dey","Gupta","Singh","",""} };        
        System.out.println("Enter your 3 digit code name :");
        Pin=Integer.parseInt(br.readLine());
        char cn[]=Pin.toCharArray();
        int cn1=cn[0], cn2= cn[1], cn3= cn[2];
        String Name1=Names[0][cn1], Name2=Names[1][cn2], Name3=Names[2][cn3];
        System.out.println(Name1+" "+Name2+" "+Name3);
    }
}

【问题讨论】:

  • 请分享你到目前为止所做的一切。
  • 感谢您让我们知道您正在使用 Java 执行此操作。但是尝试提出问题并提供一些代码;)
  • dropbox.com/s/szaoqoe1yif5i0i/drop.txt?dl=0 这是我的程序,我想为每个名称都指定代号,但上面写着 java ArrayIndexOutOfBoundsException : 48
  • @AbhigyanSingh 编辑帖子而不是添加保管箱链接会很棒:)

标签: arrays


【解决方案1】:

您需要先将整数转换为字符串。

String pinStr = Integer.toString(Pin);

然后将新的字符串作为一个字符数组进行迭代,然后将它们分配给一个新的整数数组。

int [] pinExtracted = new int[pinStr.length()];

for (int i = 0; i < pinStr.length(); i++){
    pinExtracted[i] = Integer.parseInt(pinStr.charAt(i));
}

【讨论】:

  • 请不要将类似的解决方案添加到已经可用的解决方案中以不促进重复[reference]
  • 我使用了它,但它说“一些消息已被简化,重新编译 - Xdiags:verbose 以获得完整输出”。
  • 通常应该有一个更有用的错误信息。请检查其他错误消息并仔细检查代码(例如 .length() 而不是 .length)。
  • 现在它说:char不能转换成java.lang.string
  • 抱歉,请使用 Character.getNumericValue(pinStr.charAt(i)) 而不是 Integer.parseInt()。
【解决方案2】:

试试这个:

public void int [] convertToArray(int pin){
     StringBuilder sB = new StringBuilder();
     sB.append(pin);
     String toConvert = sB.toString();
     int [] splittedValue = new int [toConvert.length];
     for(int i = 0; i < toConvert.length; i++){
        splittedValues[i] = Integer.parseInt(toConver.charAt(i));
    }
 return splittedValues; 
 } 

我认为这可行...问候

【讨论】:

  • 这里没有充分的理由使用StringBuilder。只是说。
  • 也没有充分的理由使用Integer.parseInt - Character.getNumericValue 更容易。
猜你喜欢
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
  • 2021-05-04
  • 2013-01-03
  • 2016-01-15
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多