我从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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出 - 15K
但我希望输出为15000.但是我不想改变我的Json数据.我该怎么做到这一点?
用适当数量的零替换K,M等.
String yviews = (String)jsonObject3.get("Views");
yviews = yviews.replace( "K", "000").replace( "M", "000000");
System.out.println(yviews);
Run Code Online (Sandbox Code Playgroud)
编辑:如果您的视图数可以有浮点数,您可以使用以下代码:
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |