Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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
Java 将一串数字拆分为长变量_Java_Spring Boot - Fatal编程技术网

Java 将一串数字拆分为长变量

Java 将一串数字拆分为长变量,java,spring-boot,Java,Spring Boot,我有一个字符串变量,我想把它分成3个变量 String = "2,3,4"; Long one = Long two = Long three = 我试着把它们分成三个长变量。基本上,我只想将字符串解析为三个长变量 String = "2,3,4"; Long one = Long two = Long three = 只是想知道我该怎么做? 我不想把它们列入清单。 非常感谢您的帮助。是的,您可以,首先使用split方法将字符串拆分为,(逗

我有一个字符串变量,我想把它分成3个变量

String = "2,3,4";
Long one = 
Long two =
Long three = 
我试着把它们分成三个长变量。基本上,我只想将字符串解析为三个长变量

String = "2,3,4";
Long one = 
Long two =
Long three = 
只是想知道我该怎么做? 我不想把它们列入清单。
非常感谢您的帮助。

是的,您可以,首先使用
split
方法将字符串拆分为,(逗号),这将返回一个字符串数组,然后通过将元素键入
long
来访问数组索引

        String s = "2,3,4";
        
        String [] splitS = s.split(",");
        
        long nr = Long.parseLong(splitS[0]);
        long nrTwo = Long.parseLong(splitS[1]);
        long nrThree = Long.parseLong(splitS[2]);
或者,如果您不知道
s
将包含多少元素,那么应该创建一个长元素列表

List<Long> longNumbers = new ArrayList<>();

你需要一个长列表

List<Long> longs = new ArrayList<>();

只需使用
java.util.Scanner
(“一个可以解析原语类型的简单文本扫描器”)

如果缺少一个数字,它将抛出NoTouchElementException 如果其中一个格式无效,
InputMismatchException

方法
hasNextLong()
可用于检查是否存在可用的井格式
long
,并且
next()
可用于读取该值(忽略该值或在错误消息中使用)

有关详细信息,请联系官方

注1:我使用了
long
(基本类型),但应该使用
long
(包装对象,如果需要)
注2:要忽略逗号前后的空格,请使用分隔符,如
…useDelimiter(“\\s*,\\s*”)

使用流:

List<Long> longNumbers = List.of( "2,3,4".split( "," ) ).stream().map( num -> Long.parseLong( num ) ).collect( toList() );

longNumbers.get(0)
longNumbers.get(1)
longNumbers.get(2)
List longNumbers=List.of(“2,3,4”).split(“,”).stream().map(num->Long.parseLong(num)).collect(toList());
longNumbers.get(0)
longNumbers.get(1)
longNumbers.get(2)

String[]parts=“2,3,4”。拆分(“,”
),然后使用
parts[0]
parts[1]
等,并使用
Long将它们解析为
Long
。parseLong
使用
var sc=新扫描仪(字符串)中的
扫描仪
。使用分隔符(“,”
sc.nextLong()
读取每个
Long
值“我不想把它们放在列表中”,所以我更喜欢
Pattern.compile(“,”).splitAsStream(“2,3,4”).mapToLong(Long::parseLong.toArray();
((或者至少
Arrays.stream(“2,3,4”).split(“,”)。
不需要列表来创建数组流))
List<Long> longNumbers = List.of( "2,3,4".split( "," ) ).stream().map( num -> Long.parseLong( num ) ).collect( toList() );

longNumbers.get(0)
longNumbers.get(1)
longNumbers.get(2)