Java 字符串

字符串优化处理

String str1 = "abc";
String str2 = "abc";
String str3 = new String("abc");
str1 == str2;   // true  常量池的优化
str1 == str3;   // false
str1 == str3.intern();  // true 常量池的引用

subString()方法的内存泄漏

public String getSubString(String str, int begin, int end){
  return new String(str.substring(begin, end));// 返回新的字符串,防止溢出
}

字符串的分割和查找

// 方法1 (用时3500ms)
"a;b,c:d".split("[;|,|:]"); // ["a", "b", "c", "d"]

// 方法2 (用时2500ms)
StringTokenizer st = new StringTokenizer(orgStr, ";");
while (st.hasMoreTokens()){
  st.nextToken();
}

// 方法3 (用时700ms)
String tmp = orgStr;
while(true){
  String splitStr = null;
  int j = tmp.indexOf(";");   // 找分隔符的位置
  if (j<0) break;         // 没有分隔符存在
  splitStr = tmp.substring(0,j);  // 找到分隔符,截取子字符串
  tmp = tmp.substring(j+1);   // 剩下需要处理的字符串
}

判断字符串是否以"abc"开始

// 方法1 (用时30ms)
orgStr.startsWith("abc");

// 方法2 (用时15ms)
int len = orgStr.length();
if (orgStr.charAt(0) == "a" && orgStr.charAt(1) == "b" && orgStr.charAt(2) == "c"){
  System.out.println("orgStr是以abc开始");
}

字符串相加优化

StringBuffer sb = new StringBuffer(5888890);  // 线程安全,指定大小可以提升性能
StringBuilder sb = new StringBuilder(5888890);

StringUtils.leftPad自动补全功能

"Product_" + StringUtils.leftPad(proId, 32 - "Product_".length(), "0")
String id2 = productId.replaceAll("^[^1-9]+", "");

 

格式化number

pd.put("price", SystemConfigUtil.getOrderScaleBigDecimal(new BigDecimal(_getString(pd, "price"))));

 

BigDecimal 精度处理

 @Column(precision = 15, scale = 5, nullable = false, name = "total_amount")
  public BigDecimal getTotalAmount() {
    return totalAmount;
  }

  // 精度处理
  public void setTotalAmount(BigDecimal totalAmount) {
    this.totalAmount = SystemConfigUtil.getOrderScaleBigDecimal(totalAmount);
  }

  // 数据库字段精度设置为5

 

java字符串替换

String s = sb.toString();
String patternString = "data-(edit|style)\\s*=\\s*\"\\s*\\{.+?\\}\\s*\"";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(s);
StringBuffer ssb = new StringBuffer();
while(matcher.find()){
  matcher.appendReplacement(ssb, "");
}
matcher.appendTail(ssb);

enum与int、String之间的转换

https://blog.csdn.net/weixin_37946518/article/details/93073627

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值