package com.tuwer;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.Objects;
/**
* @author 土味儿
* Date 2022/11/7
* @version 1.0
*/
@SpringBootTest
public class MyTest {
private Long getPriceOfFen(String moneyStr) {
if (Objects.isNull(moneyStr) || moneyStr.length() < 1) {
return 0L;
}
// 合法字符
String model = ".0123456789";
// 如果有。时,把 。替换为小数点.
moneyStr = moneyStr.replaceAll("\\。", "\\.");
// 去除非法字符
StringBuilder newMoneyBuilder = new StringBuilder();
for (int i = 0; i < moneyStr.length(); i++) {
char c = moneyStr.charAt(i);
// 判断当前字符是否合法
int b = model.indexOf(c);
if (b >= 0) {
newMoneyBuilder.append(c);
}
}
// 新的金额字符串;不含非法字符
String newMoney = newMoneyBuilder.toString();
if (newMoney.length() < 1) {
return 0L;
}
// 整数、小数部分
Long x, y;
// 是否有小数点.
int a = newMoney.indexOf(".");
// 有小数点,且小数点不在第一位
if (a > 0) {
// 整数部分
x = Long.parseLong(newMoney.substring(0, a));
// 小数部分
// 取小数点及后面的所有字符(可能有多个小数点)
String l = newMoney.substring(a);
// 把所有小数点替换为空
l = l.replaceAll("\\.", "");
// 如果l的长度大小2时,只取两位
if (l.length() > 2) {
l = l.substring(0, 2);
}
if (l.length() < 1) {
l = "0";
}
if(l.length() == 1){
l = l + "0";
}
y = Long.parseLong(l);
}
// 有小数点,且小数点在第一位
else if (a == 0) {
x = 0L;
// 把所有小数点替换为空
newMoney = newMoney.replaceAll("\\.", "");
// 如果newMoney的长度大小2时,只取两位
if (newMoney.length() > 2) {
newMoney = newMoney.substring(0, 2);
}
if (newMoney.length() < 1) {
newMoney = "0";
}
if (newMoney.length() == 1) {
newMoney = newMoney + "0";
}
y = Long.parseLong(newMoney);
}
// 没有小数点
else {
x = Long.parseLong(newMoney);
y = 0L;
}
// 元转为分
return x * 100 + y;
}
@Test
public void test() {
String m = "d w s 在人枯002.13des.322dk ls w s 。不髑要人要";
System.out.println("【原始字符串】" + m);
System.out.println("【转换后】" + getPriceOfFen(m));
}
}
【原始字符串】d w s 在人枯002.13des.322dk ls w s 。不髑要人要
【转换后】213
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/70372.html