Java将字符串解析为Java对象
如何解析如下字符串:Java将字符串解析为Java对象,java,string,parsing,object,Java,String,Parsing,Object,如何解析如下字符串: String m = "Material: chair\nPrice: 302.91\nCount: 5" 转换为java对象: public class Order { String material; String price; int count; } 只需创建一个类: class Material{ String material; String price; int count; public Mater
String m = "Material: chair\nPrice: 302.91\nCount: 5"
转换为java对象:
public class Order {
String material;
String price;
int count;
}
只需创建一个类:
class Material{
String material;
String price;
int count;
public Material(String material, String price, int count){
this.material = material;
this.price = price;
this.count = count;
}
// Override toString()? Comparable (compareTo())?
}
一个非常简单的解决方案是:
公共类主{
公共静态void main(字符串[]args){
字符串m=“材料:椅子\n价格:302.91\n计数:5”;
订单=新订单(m);
系统输出打印项次(订单计数);
系统输出打印项次(订单物料);
系统输出打印项次(订单价格);
}
}
阶级秩序{
弦材料;
串价;
整数计数;
公共秩序(字符串str){
字符串[]parsedArr=str.split(“\n”);
字符串materialStr=parsedArr[0];
字符串priceStr=parsedArr[1];
字符串countStr=parsedArr[2];
this.materials=materialStr.split(“:”[1].trim();
this.price=priceStr.split(“:”[1].trim();
this.count=Integer.parseInt(countStr.split(“:”[1].trim());
}
}
就像其他答案一样。我建议使用JSON而不是这种随机字符串。欢迎使用Stackoverflow,请阅读。特别注意。确保用正确的标签(编程语言、相关技术等)标记问题。你在发布一个好的问题上投入的精力越多:一个容易阅读、理解的问题,而且这个问题越容易吸引相关的人,你得到帮助的速度就越快。祝你好运你的意思是左手边的值例如Material应该被自动考虑并声明为变量名和右手边的值,以确定它是什么类型并分配给合适的类型吗?最简单的解决方案不是发明自己的序列化格式,而是使用已经存在的格式,比如JSON。所以问题是:为什么你要自己创建这样的机制而不是使用它呢?不,我的意思是,我如何才能将值“chair”、“302.91”和5解析为一个变量。@Pshemo我知道这会更容易,但我的任务是这样做……问题的“解析字符串”部分呢,“这似乎是真正的重点?”另一个戴夫修正了这正是我要找的。非常感谢。
class Foo{
public static void main (String[] args){
String S = "Wood 50 10";
Material m = new Material();
//m is now an object
// You want to parse a string into an object. One way is java.util.Scanner
// with methods like Scanner.nextInt() and Scanner.next();
java.util.Scanner sc = new java.util.Scanner(S);
m = new Material(sc.next(), sc.next(), sc.nextInt());
String[] values = S.split(" "); // Split the string into and copy to an array
m = new Material(values[0], values[1], Integer.parseInt(values[2]));
}
}