Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将整数的每个数字存储到ArrayList java中_Java_Arraylist - Fatal编程技术网

将整数的每个数字存储到ArrayList java中

将整数的每个数字存储到ArrayList java中,java,arraylist,Java,Arraylist,我正在尝试创建一个Digits方法来存储在ArrayList数字列表中传入的num的数字。我不是除以10得到模数,而是将整数num转换成字符串,并尝试使用charAt存储每个数字。但我必须将其转换回整数,以将其存储在ArrayList中,并努力研究如何实现它 多谢各位 class Digits{ ArrayList<Integer>digitList; Digits(int num) { String StringN = Integer.toString(num);

我正在尝试创建一个Digits方法来存储在ArrayList数字列表中传入的num的数字。我不是除以10得到模数,而是将整数num转换成字符串,并尝试使用charAt存储每个数字。但我必须将其转换回整数,以将其存储在ArrayList中,并努力研究如何实现它

多谢各位

 class Digits{
 
 ArrayList<Integer>digitList;

Digits(int num) {
    String StringN = Integer.toString(num);
    int index = 0;
    new ArrayList<Integer>(); 
    for(int i=0;i<StringN.length();i++) {

        // convert the charAt(i) to integer here?

        digitList.add(index, StringN.charAt(i)); 
  
        index++;
    }
    


      }
 }

 public class digitListclass {

public static void main(String[] args) {
    
    
    

}

 }
类数字{
ArrayListdigitList;
数字(整数){
字符串StringN=Integer.toString(num);
int指数=0;
新的ArrayList();
对于(inti=0;i这可能会对您有所帮助-

import java.util.ArrayList;
import java.util.List;

public class Test {
  List<Integer> toList(int num) {
    String stringNumber = Integer.toString(num);
    List<Integer> result = new ArrayList<Integer>(stringNumber.length());
    for(int i = 0; i < stringNumber.length(); i ++) {
      result.add(Integer.valueOf(stringNumber.substring(i, i + 1)));
    }
    return result;
  }

  public static void main(String[] args) {
    System.out.println(new Test().toList(1234567890));
  }
}
import java.util.ArrayList;
导入java.util.List;
公开课考试{
列表列表(整数){
字符串stringNumber=Integer.toString(num);
列表结果=新的ArrayList(stringNumber.length());
对于(int i=0;i
我认为您的代码中存在一些问题:

  • 您初始化
    digitList
    的方式不正确,因为它没有分配给任何变量。您应该:
  • 我用这段代码对它进行了测试,它似乎可以工作:

    Digits first = new Digits(512);
    Digits second = new Digits(1024);
    
    // Prints First Digit: [5, 1, 2]
    System.out.println("First Digit: " + first.getDigitList().toString());
    // Prints Second Digit: [1, 0, 2, 4]
    System.out.println("Second Digit: " + second.getDigitList().toString());
    
    太长,读不下去了 最佳做法是使用Unicode代码点,而不是
    char

    “1234567890”
    .codePoints()
    .地图(
    (int代码点)->Integer.parseInt(Character.toString(代码点))
    )
    .boxed()
    托利斯先生()
    
    [1,2,3,4,5,6,7,8,9,0]

    char
    过时
    char
    类型已过时,甚至无法表示Unicode中定义的一半字符。虽然此类型严格适用于,但我们应该养成使用整数而不是
    char
    类型值的习惯

    代码点的
    IntStream
    将文本用作代码点编号的最简单方法是调用以获取一个
    int
    基元值流。对于数字
    1
    ,我们获得代码点49,对于数字
    2
    代码点50,依此类推,
    0
    被分配给代码点48

    对于表示代码点编号的每个
    int
    ,将其转换为指定给该编号的字符作为
    字符串
    对象。因此49变为“1”,50变为“2”,依此类推

    然后将每个数字作为字符串解析为数字值的
    int
    值。如果字符串不是可解析整数,则抛出一个

    通过调用
    .boxed
    ,我们将数字的每个
    int
    原语转换为
    整数
    对象

    最后,我们将表示每个数字的
    整数
    对象收集到一个不可修改的
    列表
    。该方法在Java 16中是新的。对于早期的Java,请使用
    .collect(Collectors.toList())

    列表数字=
    "1234567890"
    .codePoints()
    .map(代码点->整数.parseInt(Character.toString(代码点)))
    .boxed()
    .toList();
    
    下面是一个使用
    main
    方法的完整示例类

    package work.basil.demo.text;
    导入java.util.List;
    公共类App2
    {
    公共静态void main(字符串[]args)
    {
    列出数字=
    "1234567890"
    .codePoints()
    .map(代码点->整数.parseInt(Character.toString(代码点)))
    .boxed()
    .toList();
    System.out.println(“digits=“+digits”);
    }
    }
    
    跑步的时候

    数字=[1,2,3,4,5,6,7,8,9,0]


    “digitList无法解析”试图告诉您什么?我不知道,我是否错误地声明了ArrayList?这可能会对您有所帮助:。您在主方法中创建了一个局部变量。该变量的作用域仅限于该方法。@Selina您没有在任何地方声明
    digitList
    。我编辑了代码!我如何存储字符(I)作为数字列表中的整数
    Digits first = new Digits(512);
    Digits second = new Digits(1024);
    
    // Prints First Digit: [5, 1, 2]
    System.out.println("First Digit: " + first.getDigitList().toString());
    // Prints Second Digit: [1, 0, 2, 4]
    System.out.println("Second Digit: " + second.getDigitList().toString());