Java 简单实用方法二

整理以前的笔记,在学习Java时候,经常会用到一些方法。虽然简单但是经常使用。因此做成笔记,方便以后查阅
这篇博文先说明构造和使用这些方法。

判断String类型数据是否包含中文

可以通过正则表达式来判断。

1
2
3
4
5
6
7
8
9
10
11
public static boolean isChineseChar(String str) {
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher m = p.matcher(str);
return m.find();
}
String str1="你好";
String str2="Hello";
String str3="你好 ,@¥Hello@…… 世界.\\ ";
System.out.println(isChineseChar(str1)); //true
System.out.println(isChineseChar(str2)); //false
System.out.println(isChineseChar(str3)); //true

获取String类型中文的数据

那么先通过正则表达式来判断是否包含中文,如果数据包含中问便将中文数据取出来。
注:使用StringBuffer累加比String 效率更高。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static String getChinese(String paramValue) {
String regex = "([\u4e00-\u9fa5]+)";
StringBuffer sb=new StringBuffer();
Matcher matcher = Pattern.compile(regex).matcher(paramValue);
while (matcher.find()) {
sb.append(matcher.group(0));
}
return sb.toString();
}
String str1="你好";
String str2="Hello";
String str3="你好 ,@¥Hello@…… 世界.\\ ";
System.out.println(getChinese(str1)); //你好
System.out.println(getChinese(str2)); //
System.out.println(getChinese(str3)); //你好世界

四舍五入取整数

使用DecimalFormat来格式化十进制数字。
注: 0 一个数字
 # 一个数字,不包括 0
 . 小数的分隔符的占位符

1
2
3
4
5
6
7
8
9
10
11
12
13
public static Double formatDouble(Double db,String format) {
if(null==format||"".equals(format)){
return db;
}
DecimalFormat df = new DecimalFormat(format); //定义格式
return Double.parseDouble(df.format(db));
}
double db1=5.6849;
System.out.println(formatDouble(db1,"#.00")); //5.68
System.out.println(formatDouble(db1,"#.000"));//5.685
System.out.println(formatDouble(db1,"#")); //6.0
System.out.println(formatDouble(db1,".00")); //5.68
System.out.println(formatDouble(db1,"00")); //6.0

String数据中插入指定字符

方法一

使用substring方法拼接起来

1
2
3
4
5
6
public static String insertString1(String a,String b,int t){
return a.substring(0,t)+b+a.substring(t,a.length());
}
String str4="abcdef";
System.out.println(insertString1(str4,"p",2));//abpcdef
System.out.println(insertString1(str4,"k",3));//abckdef

方法二

使用StringBuffer中insert方法

1
2
3
4
5
6
7
8
public static String insertString2(String a,String b,int t) {
StringBuilder sb = new StringBuilder(a);
sb.insert(t, b);
return sb.toString();
}
String str4="abcdef";
System.out.println(insertString2(str4,"p",2));//abpcdef
System.out.println(insertString2(str4,"k",3));//abckdef

String数据替换指定字符

方法一

通过在String插入字符可以得出,原该位置的字符回向后偏移,那么在拼接数据的时候去掉插入原位置的字符。

1
2
3
4
5
6
public static String repaceString1(String a,String b,int t){
return a.substring(0,t)+b+a.substring(t+b.length(),a.length());
}
String str4="abcdef";
System.out.println(repaceString1(str4,"pp",2));//abppef
System.out.println(repaceString1(str4,"kk",3));//abckkf

方法二

通过StringBuffer中的repace方法替换该字符

1
2
3
4
5
6
7
8
9
public static String repaceString2(String a,String b,int t){
StringBuilder sb = new StringBuilder(a);
sb.replace(t, t+b.length(), b);
return sb.toString();
}
String str4="abcdef";
System.out.println(repaceString2(str4,"pp",2));//abppef
System.out.println(repaceString2(str4,"kk",3));//abckkf

版权声明:
作者:虚无境
博客园出处:http://www.cnblogs.com/xuwujing
CSDN出处:http://blog.csdn.net/qazwsxpcm    
个人博客出处:http://www.panchengming.com
原创不易,转载请标明出处,谢谢!

+
------ 本文结束 ------