将K样式数字转换为int / long

时间:2019-10-18 14:44:13

标签: java php android

我有一些这样的文字:

标题 链接(http // a.com / ......) 用户名(id-> @ ......) 成员

任何用户都可以为我要检测其成员的应用发送此数据,并转换为intlong

例如

100K -> 100000
5.8 -> 5800
2.3k -> 2300
20 k -> 20000
200 -> 200
500 -> 500
8000 -> 8000

首先,我应该找到包含“ 0-9”和“。”的文本。和“ k”和“ m”字符仅在开始转换之前。

php:

function getOrginalNumber($mystring)
{
    $mystring = strtolower($mystring);
    $pos1 = stripos($mystring, ".");
    $pos2 = stripos($mystring, "k");
    if ($pos1 == 0 && $pos2 == 0) {
    } else if ($pos1 == 0 && $pos2 > 0) {
        $mystring = str_replace("k", "000", $mystring);
    } else if ($pos1 > 0 && $pos2 == 0) {
        $mystring = str_replace(".", "", $mystring);
    } else if ($pos1 > 0 && $pos2 > 0) {
        $mystring = str_replace(".", "", $mystring);
        if (strlen($mystring) - 1 == 1) {
            $mystring = str_replace("k", "000", $mystring);
        } else if (strlen($mystring) - 1 == 2) {
            $mystring = str_replace("k", "00", $mystring);
        }
    }
    return $mystring;
}

function isNumber($string)
{
    $s = convert_to_en_number($string);
    if (preg_match('/^[0-9k.]+$/', $s)) {
        return true;
    } else {
        return false;
    }
}

并使用:

 foreach ($fields as &$value) {
        if (isNumber($value)) {
            $value = getOrginalNumber($value);
        }
    }

但有时无法正常工作。

我需要java代码。

0 个答案:

没有答案