带字符串参数的Java构造函数
如何从字符串参数中提取属性值带字符串参数的Java构造函数,java,constructor,Java,Constructor,如何从字符串参数中提取属性值 public class Pays{ public Pays(String paysDescriptions) { //implementation } } pays= new Pays("p1:Europe:France, p2:Amerique:Canada"); 编辑: public Pays(String paysDescriptions) { String[] split_1 = paysDescriptions.spl
public class Pays{
public Pays(String paysDescriptions) {
//implementation
}
}
pays= new Pays("p1:Europe:France, p2:Amerique:Canada");
编辑:
public Pays(String paysDescriptions) {
String[] split_1 = paysDescriptions.split(",");
for (String split : split_1) {
String[] split_2 = split.split(":");
for (String sp : split_2) {
System.out.println(sp); // use sp.trim() if spaces after comma
// not required.
}
}
}
下面我给了一些从未使用过这种构造函数的人一个答案(比如我:p),他们可能需要一些解释。你应该尝试使用API
,
)将参数paysDescriptions
打断为regex
,然后:
)将单个项目拆分为regex
public Pays(String paysDescriptions) {
String[] split_1 = paysDescriptions.split(",");
for (String split : split_1) {
String[] split_2 = split.split(":");
for (String sp : split_2) {
System.out.println(sp); // use sp.trim() if spaces after comma
// not required.
}
}
}
我误解了逻辑,因为这是我第一次看到这种构造函数。我只有单元测试类,我应该为源代码实现代码。因此,我使用了一个
Map
来分割参数,然后我可以访问我的类的各种属性
Map<String, String[]> paysMap = new HashMap<String, String[]>();
public Pays(String paysDescriptions) {
String s = paysDescriptions;
String[] pairs = s.split(",");
for (int i=0;i<pairs.length;i++) {
String pair = pairs[i];
String[] keyValue = pair.split(":");
paysMap.put(String.valueOf(keyValue[0]),new String[] {String.valueOf(keyValue[1]), String.valueOf(keyValue[2])});
}
}
Map paysMap=newhashmap();
公共支付(字符串支付说明){
字符串s=付款说明;
字符串[]对=s.split(“,”);
对于(int i=0;iYou只是与字符串中的逗号混淆。它是一个包含在一组引号中的单个字符串,因此构造函数只有一个参数。您到底不明白什么?您正在创建一个新的Pays
对象,其中包含一个字符串参数paysDescriptions
=“p1:欧洲:法国,p2:美洲:加拿大”
@MadMatts感谢您的评论。我不明白如何访问pays属性。我有testCase,应该创建类implementation@JunedAhsan是的,我知道这只是一个字符串,但我不明白如何操作它,因为它们是另一个函数,具有as参数,例如:p1
aspaysId
或欧洲
作为国家
感谢您的回答这正是我所做的..我使用了哈希图。我很高兴您发现它很有用。请接受一个答案,这样问题就不会以开放状态出现。