62,614
社区成员
发帖
与我相关
我的任务
分享
public class Demo28 {
/**
* @param args
*/
public static void main(String[] args) {
String userInfo = "userID=12,userName=Zhaomin'";
UserInfo info = new Demo28().setInfo(userInfo, new UserInfo());
System.out.println(info.getUserID());
System.out.println(info.getUserName());
}
public UserInfo setInfo(String userInfo, UserInfo user) {
String[] info = userInfo.split(",");
if (info.length != 2) return user;
if ("userID".equals(info[0].substring(0, info[0].indexOf("=")))) {
String id = info[0].substring(info[0].indexOf("=")+1);
// 如果id不是整数,id默认为0
user.setUserID(id.matches("\\d+") ? Integer.parseInt(id) : 0);
}
if ("userName".equals(info[1].substring(0, info[1].indexOf("=")))) {
String name = "";
// userName='Zhaomin', userName='Zhaomin, userName=Zhaomin', userName=Zhaomin四种情况
name = info[1].contains("='") ? info[1].substring(info[1].indexOf("'")+1) : info[1].substring(info[1].indexOf("=")+1);
name = name.endsWith("'") ? name.substring(0, name.length() - 1) : name;
user.setUserName(name);
}
return user;
}
}
String s = "userID=12,userName='Zhaomin'" ;
String ss [] = s.split(",") ;
UserInfo user = new UserInfo();
for (int i = 0; i < ss.length; i++) {
String sss [] = ss[i].split("=") ;
if(userIDs[0].equals("userID")) {
user.setUserID(new Integer(sss[1]));
}
if(userIDs[0].equals("userName")) {
user.setUserName(sss[1].replaceAll("'", ""));
}
package com;
import java.io.IOException;
import java.lang.reflect.Field;
public class Test {
public static void main(String[] args) throws IOException {
String userInfo = "userID=12,userName=Zhaomin";
String[] params = userInfo.split(",");
String[] fields = new String[params.length];
String[] values = new String[params.length];
for(int i = 0; i < params.length; i++){
String param = params[i];
String[] strs = param.split("=");
String field = null;
String value = null;
if(strs.length > 0){
field = strs[0];
}
if(strs.length > 1){
value = strs[1];
}
fields[i] = field;
values[i] = value;
}
Class<UserInfo> c = UserInfo.class;
UserInfo ui = null;
try {
ui = c.newInstance();
for(int i = 0; i < fields.length; i++){
String fieldName = fields[i];
String value = values[i];
// String setMethodName = "set" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1);
Field field = c.getDeclaredField(fieldName);
field.setAccessible(true);
if("int".equalsIgnoreCase(field.getType().toString())){
field.setInt(ui, Integer.parseInt(value));
}else if("long".equalsIgnoreCase(field.getType().toString())){
field.setLong(ui, Long.parseLong(value));
//基本类型自己去判断了
}else{
field.set(ui, field.getType().cast(value));
}
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
System.out.println(ui.getUserID() + " : " + ui.getUserName());
}
}
class UserInfo {
private int userID;
private String userName;
public UserInfo(){}
public int getUserID() {
return userID;
}
public void setUserID(int userID) {
this.userID = userID;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}