1. 程式人生 > >Java操作字串的工具類

Java操作字串的工具類

  1 import java.io.ByteArrayOutputStream;
  2 import java.io.IOException;
  3 import java.io.PrintStream;
  4 import java.math.BigDecimal;
  5 import java.util.regex.Matcher;
  6 import java.util.regex.Pattern;
  7 
  8 public class StringUtil {
  9 
 10     /**
 11      * 過濾空NULL
 12      * 
@param o 13 * @return 14 */ 15 public static String FilterNull(Object o) { 16 return o != null && !"null".equals(o.toString()) ? o.toString().trim() : "" ; 17 } 18 19 /** 20 * 是否為空 21 * @param o 22 * @return 23 */ 24
public static boolean isEmpty(Object o) { 25 if (o == null) { 26 return true; 27 } 28 if ("".equals(FilterNull(o.toString()))) { 29 return true; 30 } else { 31 return false; 32 } 33 } 34 35
/** 36 * 是否不為空 37 * @param o 38 * @return 39 */ 40 public static boolean isNotEmpty(Object o) { 41 if (o == null) { 42 return false; 43 } 44 if ("".equals(FilterNull(o.toString()))) { 45 return false; 46 } else { 47 return true; 48 } 49 } 50 51 /** 52 * 是否可轉化為數字 53 * @param o 54 * @return 55 */ 56 public static boolean isNum(Object o) { 57 try { 58 new BigDecimal(o.toString()); 59 return true; 60 } catch (Exception e) { 61 } 62 return false; 63 } 64 65 /** 66 * 是否可轉化為Long型數字 67 * @param o 68 * @return 69 */ 70 public static boolean isLong(Object o) { 71 try { 72 new Long(o.toString()); 73 return true; 74 } catch (Exception e) { 75 } 76 return false; 77 } 78 79 /** 80 * 轉化為Long型數字, 不可轉化時返回0 81 * @param o 82 * @return 83 */ 84 public static Long toLong(Object o) { 85 if (isLong(o)) { 86 return new Long(o.toString()); 87 } else { 88 return 0L; 89 } 90 } 91 92 /** 93 * 轉化為int型數字, 不可轉化時返回0 94 * @param o 95 * @return 96 */ 97 public static int toInt(Object o) { 98 if (isNum(o)) { 99 return new Integer(o.toString()); 100 } else { 101 return 0; 102 } 103 } 104 105 /** 106 * 按字元從左擷取固定長度字串, 防止字串超長, 預設擷取50 107 * @param o 108 * @return 109 */ 110 public static String holdmaxlength(Object o) { 111 int maxlength = 50; 112 if (o == null) { 113 return ""; 114 } 115 return subStringByByte(o, maxlength); 116 } 117 118 /** 119 * 從左擷取固定長度字串, 防止字串超長, maxlength為0時預設50 120 * @param o 121 * @return 122 */ 123 public static String holdmaxlength(Object o, int maxlength) { 124 maxlength = maxlength <= 0 ? 50 : maxlength; 125 if (o == null) { 126 return ""; 127 } 128 return subStringByByte(o, maxlength); 129 } 130 131 /** 132 * 按位元組擷取字串 133 * @param str 134 * @param len 135 * @return 136 */ 137 private static String subStringByByte(Object o, int len) { 138 if (o == null) { 139 return ""; 140 } 141 String str = o.toString(); 142 String result = null; 143 if (str != null) { 144 byte[] a = str.getBytes(); 145 if (a.length <= len) { 146 result = str; 147 } else if (len > 0) { 148 result = new String(a, 0, len); 149 int length = result.length(); 150 if (str.charAt(length - 1) != result.charAt(length - 1)) { 151 if (length < 2) { 152 result = null; 153 } else { 154 result = result.substring(0, length - 1); 155 } 156 } 157 } 158 } 159 return result; 160 } 161 162 /** 163 * 逗號表示式_新增 164 * @param commaexpress 原逗號表示式 如 A,B 165 * @param newelement 新增元素 C 166 * @return A,B,C 167 */ 168 public static String comma_add(String commaexpress, String newelement) { 169 return comma_rect(FilterNull(commaexpress) + "," + FilterNull(newelement)); 170 } 171 172 /** 173 * 逗號表示式_刪除 174 * @param commaexpress 原逗號表示式 如 A,B,C 175 * @param delelement 刪除元素 C,A 176 * @return B 177 */ 178 public static String comma_del(String commaexpress, String delelement) { 179 if ((commaexpress == null) || (delelement == null) || (commaexpress.trim().equals(delelement.trim()))) { 180 return ""; 181 } 182 String[] deletelist = delelement.split(","); 183 String result = commaexpress; 184 for (String delstr : deletelist) { 185 result = comma_delone(result, delstr); 186 } 187 return result; 188 } 189 190 /** 191 * 逗號表示式_單一刪除 192 * @param commaexpress 原逗號表示式 如 A,B,C 193 * @param delelement 刪除元素 C 194 * @return A,B 195 */ 196 public static String comma_delone(String commaexpress, String delelement) { 197 if ((commaexpress == null) || (delelement == null) || (commaexpress.trim().equals(delelement.trim()))) { 198 return ""; 199 } 200 String[] strlist = commaexpress.split(","); 201 StringBuffer result = new StringBuffer(); 202 for (String str : strlist) { 203 if ((!str.trim().equals(delelement.trim())) && (!"".equals(str.trim()))) { 204 result.append(str.trim() + ","); 205 } 206 } 207 return result.toString().substring(0, result.length() - 1 > 0 ? result.length() - 1 : 0); 208 } 209 210 /** 211 * 逗號表示式_判斷是否包含元素 212 * @param commaexpress 逗號表示式 A,B,C 213 * @param element C 214 * @return true 215 */ 216 public static boolean comma_contains(String commaexpress, String element) { 217 boolean flag = false; 218 commaexpress = FilterNull(commaexpress); 219 element = FilterNull(element); 220 if (!"".equals(commaexpress) && !"".equals(element)) { 221 String[] strlist = commaexpress.split(","); 222 for (String str : strlist) { 223 if (str.trim().equals(element.trim())) { 224 flag = true; 225 break; 226 } 227 } 228 } 229 return flag; 230 } 231 232 /** 233 * 逗號表示式_取交集 234 * @param commaexpressA 逗號表示式1 A,B,C 235 * @param commaexpressB 逗號表示式2 B,C,D 236 * @return B,C 237 */ 238 public static String comma_intersect(String commaexpressA, String commaexpressB) { 239 commaexpressA = FilterNull(commaexpressA); 240 commaexpressB = FilterNull(commaexpressB); 241 StringBuffer result = new StringBuffer(); 242 String[] strlistA = commaexpressA.split(","); 243 String[] strlistB = commaexpressB.split(","); 244 for (String boA : strlistA) { 245 for (String boB : strlistB) { 246 if (boA.trim().equals(boB.trim())) { 247 result.append(boA.trim() + ","); 248 } 249 } 250 } 251 return comma_rect(result.toString()); 252 } 253 254 /** 255 * 逗號表示式_規範 256 * @param commaexpress 逗號表示式 ,A,B,B,,C 257 * @return A,B,C 258 */ 259 public static String comma_rect(String commaexpress) { 260 commaexpress = FilterNull(commaexpress); 261 String[] strlist = commaexpress.split(","); 262 StringBuffer result = new StringBuffer(); 263 for (String str : strlist) { 264 if (!("".equals(str.trim())) && !("," + result.toString() + ",").contains("," + str + ",") && !"null".equals(str)) { 265 result.append(str.trim() + ","); 266 } 267 } 268 return result.toString().substring(0, (result.length() - 1 > 0) ? result.length() - 1 : 0); 269 } 270 271 /** 272 * 逗號表示式_反轉 273 * @param commaexpress A,B,C 274 * @return C,B,A 275 */ 276 public static String comma_reverse(String commaexpress) { 277 commaexpress = FilterNull(commaexpress); 278 String[] ids = commaexpress.split(","); 279 StringBuffer str = new StringBuffer(); 280 for (int i = ids.length - 1; i >= 0; i--) { 281 str.append(ids[i] + ","); 282 } 283 return comma_rect(str.toString()); 284 } 285 286 /** 287 * 逗號表示式_獲取首物件 288 * @param commaexpress A,B,C 289 * @return A 290 */ 291 public static String comma_first(String commaexpress) { 292 commaexpress = FilterNull(commaexpress); 293 String[] ids = commaexpress.split(","); 294 System.out.println("length:" + ids.length); 295 if ((ids != null) && (ids.length > 0)) { 296 return ids[0]; 297 } 298 return null; 299 } 300 301 /** 302 * 逗號表示式_獲取尾物件 303 * @param commaexpress A,B,C 304 * @return C 305 */ 306 public static String comma_last(String commaexpress) { 307 commaexpress = FilterNull(commaexpress); 308 String[] ids = commaexpress.split(","); 309 if ((ids != null) && (ids.length > 0)) { 310 return ids[(ids.length - 1)]; 311 } 312 return null; 313 } 314 315 /** 316 * 替換字串,支援字串為空的情形 317 * @param strData 318 * @param regex 319 * @param replacement 320 * @return 321 */ 322 public static String replace(String strData, String regex, String replacement) { 323 return strData == null ? "" : strData.replaceAll(regex, replacement); 324 } 325 326 /** 327 * 字串轉為HTML顯示字元 328 * @param strData 329 * @return 330 */ 331 public static String String2HTML(String strData){ 332 if( strData == null || "".equals(strData) ){ 333 return "" ; 334 } 335 strData = replace(strData, "&", "&amp;"); 336 strData = replace(strData, "<", "&lt;"); 337 strData = replace(strData, ">", "&gt;"); 338 strData = replace(strData, "\"", "&quot;"); 339 return strData; 340 } 341 342 /** * 把異常資訊轉換成字串,以方便儲存 */ 343 public static String getexceptionInfo(Exception e){ 344 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 345 try{ 346 e.printStackTrace(new PrintStream(baos)); 347 }finally{ 348 try { 349 baos.close(); 350 } catch (IOException e1) { 351 e1.printStackTrace(); 352 } 353 } 354 return baos.toString(); 355 } 356 357 /** 過濾特殊符號 */ 358 public static String regex(String str){ 359 Pattern pattern = Pattern.compile("[0-9-:/ ]");// 中文漢字編碼區間 360 Matcher matcher; 361 char[] array = str.toCharArray(); 362 for (int i = 0; i < array.length; i++) { 363 matcher = pattern.matcher(String.valueOf(array[i])); 364 if (!matcher.matches()) {// 空格暫不替換 365 str = str.replace(String.valueOf(array[i]), "");// 特殊字元用空字串替換 366 } 367 } 368 369 return str; 370 } 371 372 public static String comma_insert(String commaexpress, String newelement,int index){ 373 int length = commaexpress.length(); 374 if ( index > length ) { 375 index = length; 376 }else if ( index < 0){ 377 index = 0; 378 } 379 String result = commaexpress.substring(0, index) + newelement + commaexpress.substring(index, commaexpress.length()); 380 return result; 381 } 382 383 /** 384 * 將"/"替換成"\" 385 * @param strDir 386 * @return 387 */ 388 public static String changeDirection(String strDir) { 389 String s = "/"; 390 String a = "\\"; 391 if (strDir != null && !" ".equals(strDir)) { 392 if (strDir.contains(s)) { 393 strDir = strDir.replace(s, a); 394 } 395 } 396 return strDir; 397 } 398 399 /** 400 * 去除字串中 頭和尾的空格,中間的空格保留 401 * 402 * @Title: trim 403 * @Description: TODO 404 * @return String 405 * @throws 406 */ 407 public static String trim(String s) { 408 int i = s.length();// 字串最後一個字元的位置 409 int j = 0;// 字串第一個字元 410 int k = 0;// 中間變數 411 char[] arrayOfChar = s.toCharArray();// 將字串轉換成字元陣列 412 while ((j < i) && (arrayOfChar[(k + j)] <= ' ')) 413 ++j;// 確定字串前面的空格數 414 while ((j < i) && (arrayOfChar[(k + i - 1)] <= ' ')) 415 --i;// 確定字串後面的空格數 416 return (((j > 0) || (i < s.length())) ? s.substring(j, i) : s);// 返回去除空格後的字串 417 } 418 /** 419 * 得到大括號中的內容 420 * @param str 421 * @return 422 */ 423 public static String getBrackets(String str) { 424 int a = str.indexOf("{"); 425 int c = str.indexOf("}"); 426 if (a >= 0 && c >= 0 & c > a) { 427 return (str.substring(a + 1, c)); 428 } else { 429 return str; 430 } 431 } 432 433 /** 434 * 將字串中所有的,替換成| 435 * 436 * @param str 437 * @return 438 */ 439 public static String commaToVerti(String str) { 440 if (str != null && !"".equals(str) && str.contains(",")) { 441 return str.replaceAll(",", "|"); 442 } else { 443 return str; 444 } 445 } 446 447 /** 448 * 去掉字串中、前、後的空格 449 * @param args 450 * @throws IOException 451 */ 452 public static String extractBlank(String name) { 453 if (name != null && !"".equals(name)) { 454 return name.replaceAll(" +", ""); 455 } else { 456 return name; 457 } 458 } 459 460 /** 461 * 將null換成"" 462 * @param str 463 * @return 464 */ 465 public static String ConvertStr(String str) { 466 return str != null && !"null".equals(str) ? str.trim() : ""; 467 } 468 469 public static void main(String[] args){ 470 System.out.println(isNum("a")); 471 System.out.println(isNum("-1")); 472 System.out.println(isNum("01")); 473 System.out.println(isNum("1E3")); 474 System.out.println(isNum("1.a")); 475 System.out.println(isLong("014650")); 476 System.out.println(Long.parseLong("014650")); 477 } 478 }

相關推薦

java 隨機字串工具RandomStringUtils

開發中經常會到生成隨機數字、字母等場景。 apache提供的工具類已經為我們實現好了,所以就不用重複造輪子。 —apache的commons和google的guava已經為我們準備了很多常見的工具類。 //產生5位長度的隨機字串,中文環境下是亂碼 RandomStringUtils.ra

java操作MongoDB工具分享

最近做了個用MongoDB儲存的專案,由於MongoDB對開發人員不開放,由DBA統一管理。因此,自己抽時間寫了個MongoDB的查詢機。便於查詢專案中的資料,方便維護和分析問題。總結了一些java操作MongoDB的方法。本文沒有使用spring-data來操作MongoD

java操作mongodb工具

新建maven專案 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch

java操作linux工具

tst ade pre nds public and linux工具 buffer con package com.example.oss.config; import java.io.BufferedReader; import java.io.InputSt

Java操作字串工具

1 import java.io.ByteArrayOutputStream; 2 import java.io.IOException; 3 import java.io.PrintStream; 4 import java.math.BigDecimal; 5 import

java與javascript對cookie操作工具

check cells ram tco expire turn get servle request Java對cookie的操作 package cn.utils; import java.util.HashMap; import java.util.Map;

介紹java操作字串的主要方法

1、length方法 length()方法的用法如下所示: public static void main(String[] args) { String s1="中國IT社交網站"; String s2="csdn"; System.out.println(

Java資料庫的操作——DBUtils工具結果集處理的方式有幾種?

public class QueryRunnerDemo{ private static Connection con=JDBCUtils.getConnection(); public static void main(String[] args) throws SQLException{ QueryRun

JAVA工具(10)--- 隨機生成字串工具randomUtil

package com.gcloud.common; import java.util.Random; /** * 隨機數、隨即字串工具 * Created by charlin on 2017/9/9. */ public class RandomU

Java|Android】字串工具

摘自:https://github.com/cundong/ZhihuPaper import java.io.IOException; import java.io.InputStream; import java.net.URLEncoder; import java

Redis操作List工具封裝,Java Redis List命令封裝

Redis列表是簡單的字串列表,按照插入順序排序。你可以新增一個元素導列表的頭部(左邊)或者尾部(右邊) 一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。 下載 Java程式碼   /*********

Java將Unix時間戳轉換成指定格式日期字串工具

package com.yanshu.controller; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.uti

一個實用的java字串工具(擷取,去尾,轉碼)

package com.xx.sisp.iface.common.util; import org.apache.commons.lang3.StringUtils; import java.io.UnsupportedEncodingException;

java對xml檔案操作工具

首先列出目錄結構及其檔案內的功能: com.testxml           .main    //所有物件的入口,測試類           .books   //實體           .boos.xml   //xml檔案           .booksDao

字串工具 StringUtil.java

/** @(#)StringUtil.java1.0 2005-10-19** Copyright 2003 - 2006 BeanSoft Studio. All rights reserved.*/import java.io.IOException;import java.io.UnsupportedE

金額操作工具

ive char acea log rst reverse this emp arr 1 public class MoneyUtil { 2 private static final Map<String, String> zeroToNin

List操作工具

row exceptio val 字符串 rem 字符 sem != err 1 /** 2 * <p>list操作的工具類</p> 3 */ 4 public class ListUtil { 5 /** 6

關於IP操作工具

*** equal rac 獲取本地ip pan -i str upper forward 1 public class IPUtil { 2 /** 3 * 獲取本地IP地址 4 * @return 5 */

Java AES 加密工具

dom .com 生成器 ogg bytes commons level result exc package com.microwisdom.utils; import java.security.NoSuchAlgorithmException; import ja

java的Arrays工具

copy false string range lis 比較 jdk util 3.4 1年多了,jdk還不是很熟,補補。 package lhy.core.util; import java.util.Arrays; import java.util.Lis