Java构造函数的String参数

时间:2014-04-04 12:24:48

标签: java string list constructor

您好我的问题是

DepositoBancario(String s){
         String[]v = s.split("[ :]");
         Integer n= v.length;
         if(n!=2) throw new IllegalArgumentException("Error"+s);
         banco= new String(v[0]);
         interes= new List(v[1]);
}

这个构造函数是为了能够通过文件构建和对象,我想要转换List(interes)中的元素v [1]。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

  1. 您不需要使用new String("")创建字符串,只需设置banco = v[0]
  2. List是一个接口,无法通过构造函数实例化。你需要的是一个ArrayList,例如。但是这个类既没有Strign的构造函数也没有。字符串v[1]中的内容是什么?

答案 1 :(得分:1)

我相信您有一个或多个元素(interes),并且您希望将它们转换为元素列表。你可以使用这样的东西。

import java.util.ArrayList;
import java.util.List;

public class DepositoBancario {
    String banco;
    List<String> interes;

    public DepositoBancario(String s){
             String[]v = s.split("[ :]");
             Integer n= v.length;
             if(n!=2) throw new IllegalArgumentException("Error"+s);
             banco= v[0];
             if(v[1] != null){
                 interes = new ArrayList<String>();
             }
             for(int i=1;i<n;i++)
                 interes.add(v[i]);
    }
}

注意:请考虑markusw有价值的建议。

答案 2 :(得分:1)

首先,除非您使用List的一些自定义实现,否则您的代码将无法编译。 对于我可以从你的问题中理解它应该是类似

import java.util.List;
import java.util.ArrayList;

public class DepositoBancario {
    private String banco;
    private List<String> interes;

    DepositoBancario(String s) {
        String[]v = s.split("[ :]"); // split input string by colon or space
        if(v.length != 2) {          // check if there are just two fields
           throw new IllegalArgumentException("Invalid syntax, two fields expected: " + s);
        }
        banco = v[0];
        interes = new ArrayList<String>();
        interes.add(v[1]);
    }
}