繁体   English   中英

字符串操作和格式设置问题(从JSON解析的字符串需要操作/ w JAVA-包括Java类)

[英]String manipulation and formatting issue (parsed string from JSON needs manipulation /w JAVA - java classes included)

回到我的Java JSON示例。 我希望能够执行以下操作:(在问我的问题之前,将介绍这个问题)我得到了以下JSON文件:

x

为了将所有这些信息解析为Java,需要两个类:Manager + main方法:

经理班:

x

和主要方法:

x

另外,还需要将org.json库导入到项目中。 组织json jar

执行后,将给出以下输出:

Chris - 43 - Retail - HLF
John - 36 - Sales - FLS
Mark - 48 - TechSupport - HFO

其中H,L,F,S和O是以下个性类型:H-勤奋的L-忠诚的F-有趣的S-严重的O-外向

我的问题是:我如何能够操纵每个“类型”字符串(HLF,FLS和HFO)以获取如下所示的输出:

Chris - hardworking - loyal - funny
John - funny - loyal - serious
Mark - hardworking - funny - outgoing

我不完全确定我的问题与字符串操作有关,我对此事进行了一些搜索,但我相信确实如此。 (虽然不确定)

任何解决方案/想法/建议将不胜感激。

也许重写Manager类中的toString()方法,并使用charAt()方法,该方法在给定位置返回char。

public class Manager
{
//...

@Override
public String toString()
{
    String result = "";
    if(type != null)
    {
        for(int i=0;i<type.length();++i)
        {
            char a = type.charAt(i);

            if(a == 'H')
            {
                result += " Hardworking";
            }
            //..
        }
    }

    return this.name + result;
}
}

并且比您只能:

Manager manager = new Manager();

//...code parsing from json
System.out.println(manager);

编辑:您还可以将您的个性类型保存在最终字符中:

private final static char HARDWORKING_TYPE = 'H';

而不是使用它插入的文字:

if(a == HARDWORKING_TYPE)

更好的做法。 您也可以使用枚举类型。

编辑2:

它与主要问题无关,但是您也可以不使用伪“纯”对象而从json进行解析,而是使用注释来映射对象。 在这种情况下,您必须更改JSON库。 例:

http://software.danielwatrous.com/restful-java-servlet-serializing-tofrom-json-with-jackson/

您可以将Manager类的setType(...)方法更改为以下形式:

 public void setType(String type) {
    type = type.replace("H", "hardworking ");
    type = type.replace("L", "loyal ");
    type = type.replace("F", "funny ");
    type = type.replace("S", "serious "); 
    type = type.replace("O", "outgoing ");
    this.type = type;
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM