将一串数字拆分为长变量



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

String = "2,3,4";

我试着把它们分成三个Long变量。实际上,我要做的就是将字符串解析为三个长变量。

Long one = 
Long two =
Long three = 

我只是想知道我该怎么做?我不想把它们放在一个列表中。谢谢你的帮助。

你需要一个long列表

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

然后将每个值存储在列表

for(String s: string.split(",")) {
longs.add(Long.parseLong(s));
}

可以,首先在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包含多少元素,那么应该创建一个Long

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

然后通过分割它们来遍历String,对元素进行类型转换,然后添加到列表

for(String s : numbers.split(",")){
longNumbers.add(Long.parseLong(s));
}

只需使用java.util.Scanner("一个简单的文本扫描器,可以解析基本类型">)

Scanner scanner = new Scanner(string).useDelimiter(",");
long one = scanner.nextLong();
long two = scanner.nextLong();
long three = scanner.nextLong();

如果缺少一个数字,则抛出NoSuchElementException
如果其中一个不是有效的格式,则抛出InputMismatchException

方法hasNextLong()可用于检查是否有一个格式良好的long可用,next()可用于读取该值(忽略它或在错误消息中使用)。

官方文档获取更多详细信息。

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

Using Streams:

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)

最新更新