在 Java 中拆分数字的有效方法
Efficient way to split a number in Java
我正在努力寻找一种有效的方法来将数字的数字拆分到列表中。
例如,对于号码:
23464646237
和
ArrayList <Integer> vector;
我想在数组的每个位置插入数字中的一个数字,因此获得以下输出:
vector = {2,3,4,6,4,6,4,6,2,3,7}
如何在 Java 中以干净高效的方式执行此操作?
提前致谢
试试这个:
long yourNumber = 23464646237L;
ArrayList<Integer> vector = new ArrayList<Integer>();
String numStr = String.valueOf(yourNumber);
for(int i=0;i<numStr.length();i++)
{
vector.add(Integer.valueOf(numStr.charAt(i)));
}
不需要parseInt
,
for(int i = 0; i < numberAsString.length(); i++)
vector.add((int)numberAsString.charAt(i) - 48);
这将检索该位置数字的ASCII值,然后减去48,即table中0的值。
从 -127 到 127 的数字被缓存,所以我相信这将是最有效的方法(请注意,我不是 100% 确定)。但是无论如何,只尝试提供一种方法来保存 parseInt
调用,因为您要求 最 有效。
首先不要将其转换为字符串。因为它会更快地处理数值。所以你可以使用:
long nr = 23464646237;
while (nr > 0)
{
vector.add(nr % 10);
nr /= 10;
}
你可以这样做:
List<Integer> vector = Arrays.asList(String.valueOf(number).split(""))
.stream()
.map(Integer::parseInt)
.collect(Collectors.toList());
只需将您的号码设为字符串,然后使用 charAt() 方法将字符串的每个字符添加到列表中。
public static ArrayList<Object>vect=new ArrayList<Object>();
public static void main(String[] args){
String y="123321312312";
for (int i=0;i<y.length();i++){
vect.add(y.charAt(i));
}
}
我正在努力寻找一种有效的方法来将数字的数字拆分到列表中。
例如,对于号码:
23464646237
和
ArrayList <Integer> vector;
我想在数组的每个位置插入数字中的一个数字,因此获得以下输出:
vector = {2,3,4,6,4,6,4,6,2,3,7}
如何在 Java 中以干净高效的方式执行此操作?
提前致谢
试试这个:
long yourNumber = 23464646237L;
ArrayList<Integer> vector = new ArrayList<Integer>();
String numStr = String.valueOf(yourNumber);
for(int i=0;i<numStr.length();i++)
{
vector.add(Integer.valueOf(numStr.charAt(i)));
}
不需要parseInt
,
for(int i = 0; i < numberAsString.length(); i++)
vector.add((int)numberAsString.charAt(i) - 48);
这将检索该位置数字的ASCII值,然后减去48,即table中0的值。
从 -127 到 127 的数字被缓存,所以我相信这将是最有效的方法(请注意,我不是 100% 确定)。但是无论如何,只尝试提供一种方法来保存 parseInt
调用,因为您要求 最 有效。
首先不要将其转换为字符串。因为它会更快地处理数值。所以你可以使用:
long nr = 23464646237;
while (nr > 0)
{
vector.add(nr % 10);
nr /= 10;
}
你可以这样做:
List<Integer> vector = Arrays.asList(String.valueOf(number).split(""))
.stream()
.map(Integer::parseInt)
.collect(Collectors.toList());
只需将您的号码设为字符串,然后使用 charAt() 方法将字符串的每个字符添加到列表中。
public static ArrayList<Object>vect=new ArrayList<Object>();
public static void main(String[] args){
String y="123321312312";
for (int i=0;i<y.length();i++){
vect.add(y.charAt(i));
}
}