Java-将字符串值转换为整数

时间:2016-09-29 08:44:22

标签: java json

我从API获取json数据作为String但我想将其存储在DB中并将其用作整数。例如,我得到A = 15K或15M,但我想要15000。

这是我的班级

public class JsonRestApi {
    public JsonRestApi() {
        try {
            String Response = "{\"Youtube Data\":{\"Views\":\"15K\"}}";

            JSONParser parser = new JSONParser();
            try {
                Object obj = parser.parse(Response);

                JSONObject jsonObject = (JSONObject) obj;
                JSONObject jsonObject3  = (JSONObject)jsonObject.get("Youtube Data");

                String yviews = (String)jsonObject3.get("Views");
                System.out.println(yviews);
            }
        }
     }
 } 

输出 - 15K

但我希望输出为15000 。 但是我不想改变我的Json数据。 我应该怎样做到这一点?

1 个答案:

答案 0 :(得分:5)

用适当数量的零替换K,M等。

String yviews = (String)jsonObject3.get("Views");
yviews = yviews.replace( "K", "000").replace( "M", "000000");
System.out.println(yviews);

编辑:如果您的视图数量可以包含浮点数,则可以使用以下代码:

String[][] conversionMatrix = {{"K", "1000"}, {"M", "1000000"}, {"B", "1000000000"}};

for( int i = 0; i < conversionMatrix.length; i++)
{
    if( yviews.endsWith( conversionMatrix[i][0]))
    {
        BigDecimal temp = new BigDecimal( yviews.substring( 0, 
                                            yviews.indexOf( conversionMatrix[i][0])));
        temp = temp.multiply( new BigDecimal( conversionMatrix[i][1]));
        yviews = temp.toBigInteger().toString();
        break;
    }
}

System.out.println( yviews);