inputのような一連の数値を1,2,3,4,5,6,7
単一の として持っているとしString
ます。List
これらの数値をLong
オブジェクトの に変換したいと思いますList<Long>
。
誰でも簡単な方法をお勧めできますか?
inputのような一連の数値を1,2,3,4,5,6,7
単一の として持っているとしString
ます。List
これらの数値をLong
オブジェクトの に変換したいと思いますList<Long>
。
誰でも簡単な方法をお勧めできますか?
このような意味ですか?
String numbers = "1,2,3,4,5,6,7";
List<Long> list = new ArrayList<Long>();
for (String s : numbers.split(","))
list.add(Long.parseLong(s));
System.out.println(list);
Java 8以降、次のように書き直すことができます。
List<Long> list = Stream.of(numbers.split(","))
.map(Long::parseLong)
.collect(Collectors.toList());
あなたが取得したい場合は少し短いバージョンList<String>
List<String> fixedSizeList = Arrays.asList(numbers.split(","));
List<String> resizableList = new ArrayList<>(fixedSizeList);
またはワンライナー
List<String> list = new ArrayList<>(Arrays.asList(numbers.split(",")));
Java-8を使用したシンプルで便利なソリューション(スレッドを完成させるため):
String str = "1,2,3,4,5,6,7";
List<Long> list = Arrays.stream(str.split(",")).map(Long::parseLong).collect(Collectors.toList());
System.out.println(list);
[1、2、3、4、5、6、7]
さらに良いことに、次を使用しPattern.splitAsStream()
ます。
Pattern.compile(",").splitAsStream(str).map(Long::parseLong).collect(Collectors.toList());
String input = "1,2,3,4,5,6,7";
String[] numbers = input.split("\\,");
List<Integer> result = new ArrayList<Integer>();
for(String number : numbers) {
try {
result.add(Integer.parseInt(number.trim()));
} catch(Exception e) {
// log about conversion error
}
}
あなたは使用することができString.split()
ますLong.valueOf()
:
String numbers = "1,2,3,4,5,6,7";
List<Long> list = new ArrayList<Long>();
for (String s : numbers.split(","))
list.add(Long.valueOf(s));
System.out.println(list);
私はそれを行うために優れたグーグルのGuavaライブラリを使用します。String.split は多くの問題を引き起こす可能性があります。
String numbers="1,2,3,4,5,6,7";
Iterable<String> splitIterator = Splitter.on(',').split(numbers);
List<String> list= Lists.newArrayList(splitIterator );