Java 从字符串向数组列表添加双值
我试图把一个字符串数组转换成一个双精度数组。 我对ArrayList()相当熟悉,但我在示例代码give中看到了double[] 示例:list=[“1”、“2”、“3”] 期望返回:数字=[1,2,3]Java 从字符串向数组列表添加双值,java,arrays,string,double,Java,Arrays,String,Double,我试图把一个字符串数组转换成一个双精度数组。 我对ArrayList()相当熟悉,但我在示例代码give中看到了double[] 示例:list=[“1”、“2”、“3”] 期望返回:数字=[1,2,3] public double[] ConversionNumber { double[] sequence = new double[list.size()]; for(String element:list){ double val = Double.parseDouble(element);
public double[] ConversionNumber
{
double[] sequence = new double[list.size()];
for(String element:list){
double val = Double.parseDouble(element);
sequence.add(val)}
return sequence;
当我这样做时,我在Bluej编译器中得到一个错误:“找不到符号-方法add(double)”
解决这个问题的好方法是什么(我是Java初学者)
谢谢!如果
list
是一个数组,那么list.size()
将失败。我想我们可以假设它应该是一个list
。您可以通过索引访问数组。此外,我还假设它应该是方法的参数。接下来,方法名称的Java约定是CAMEL CASE
public double[] conversionNumber(List<String> list) {
double[] sequence = new double[list.size()];
int pos = 0;
for (String element : list) {
double val = Double.parseDouble(element);
sequence[pos++] = val; // <-- post-increment
}
return sequence;
}
public double[]转换号(列表){
double[]序列=新的double[list.size()];
int pos=0;
for(字符串元素:列表){
double val=double.parseDouble(元素);
sequence[pos++]=val;//发生错误的原因是数组没有“add”方法。您需要执行以下操作:
double[] sequence = new double[list.length];
for(int i = 0; i < list.length; i++){
sequence[i] = Double.parseDouble(list[i]);
}
在这里更改您的代码
for(String element:list){
double val = Double.parseDouble(element);
sequence.add(val)
}
如果您的列表
是列表
,则:
for(int i=0;i<list.size();i++){
double val = Double.parseDouble(list.get(i));
sequence[i]=val;
}
以下代码适用于您的案例:
java.util.List<String> list = java.util.Arrays.asList("1", "2", "3");
public double[] ConversionNumber() {
double[] sequence = new double[list.size()];
int i = 0;
for(String element:list){
double val = Double.parseDouble(element);
sequence[++i] = val;
}
return sequence;
}
java.util.List List=java.util.Arrays.asList(“1”、“2”、“3”);
公共双[]转换号(){
double[]序列=新的double[list.size()];
int i=0;
for(字符串元素:列表){
double val=double.parseDouble(元素);
序列[++i]=val;
}
返回序列;
}
一般来说,如果你在处理集合,你会一直处理集合。一方面使用列表,另一方面使用数组是不好的。因此建议使用列表来完成这项工作,而不是使用双[]
public List<Double> parseDoubles(List<String> strings) {
List<Double> doubles = new ArrayList<>(strings.size());
for(String string : strings) {
doubles.add(new Double(string));
}
return doubles;
}
public List parsedouble(列表字符串){
List doubles=newarraylist(strings.size());
for(字符串:字符串){
添加(新的双精度(字符串));
}
双打;
}
问题是他调用的是数组上的add
,而不是基于错误的list.size()
调用。我假设因为他想要一个double[]
,list
可能是一个字符串[]
而不是list
数组没有size()
方法,它们也没有get())
method@Epicblood拜托,list
是一个list
,你没有在他的代码中看到list.size()
?我的回答绝对正确“我正在试图隐藏字符串数组。”“查看代码时,它可能是一个列表
,但是,由于他希望结果也在一个数组中,因此可以安全地假设列表
是一个数组。他尝试在数组上调用add()
,因此size()
和get()
可能也有错误。您的列表是一个列表,而不是一个数组,对吗?我使用:ArrayList list=new ArrayList()new double[list.length-1]
创建了列表,double[]的大小不在这里。@SilentKnight my bad,更改了它。
java.util.List<String> list = java.util.Arrays.asList("1", "2", "3");
public double[] ConversionNumber() {
double[] sequence = new double[list.size()];
int i = 0;
for(String element:list){
double val = Double.parseDouble(element);
sequence[++i] = val;
}
return sequence;
}
public List<Double> parseDoubles(List<String> strings) {
List<Double> doubles = new ArrayList<>(strings.size());
for(String string : strings) {
doubles.add(new Double(string));
}
return doubles;
}