This article demonstrates practical Java methods for string processing and number formatting operations.
Detecting Chinese Characters in Strings
Chinese characters can be identified using regular expressions that match Unicode ranges specific to Chinece script.
public static boolean containsChinese(String input) {
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("[\\u4e00-\\u9fa5]");
java.util.regex.Matcher matcher = pattern.matcher(input);
return matcher.find();
}
String test1 = "你好";
String test2 = "Hello";
String test3 = "你好 ,@¥Hello@…… 世界.\\ ";
System.out.println(containsChinese(test1)); // true
System.out.println(containsChinese(test2)); // false
System.out.println(containsChinese(test3)); // true
Extracting Chinese Characters from Strings
Chinese characters can be extracted from mixed strings using pattern matchign and StringBuffer for efficient concatenation.
public static String extractChinese(String text) {
String pattern = "([\\u4e00-\\u9fa5]+)";
StringBuffer buffer = new StringBuffer();
java.util.regex.Matcher matcher = java.util.regex.Pattern.compile(pattern).matcher(text);
while (matcher.find()) {
buffer.append(matcher.group());
}
return buffer.toString();
}
String sample1 = "你好";
String sample2 = "Hello";
String sample3 = "你好 ,@¥Hello@…… 世界.\\ ";
System.out.println(extractChinese(sample1)); // 你好
System.out.println(extractChinese(sample2)); //
System.out.println(extractChinese(sample3)); // 你好世界
Rounding Numbers with DecimalFormat
DecimalFormat provides flexible number formatting with pattern symbols for digit representation and decimal placement.
public static Double formatNumber(Double value, String pattern) {
if (pattern == null || pattern.isEmpty()) {
return value;
}
java.text.DecimalFormat formatter = new java.text.DecimalFormat(pattern);
return Double.parseDouble(formatter.format(value));
}
double number = 5.6849;
System.out.println(formatNumber(number, "#.00")); // 5.68
System.out.println(formatNumber(number, "#.000")); // 5.685
System.out.println(formatNumber(number, "#")); // 6
System.out.println(formatNumber(number, ".00")); // 5.68
System.out.println(formatNumber(number, "00")); // 06
Inserting Characters in to Strings
Two approaches for inserting substrings: using substring concatenation or StringBuilder's insert method.
// Method 1: Substring concatenation
public static String insertSubstring1(String original, String insertion, int position) {
return original.substring(0, position) + insertion + original.substring(position);
}
// Method 2: StringBuilder insertion
public static String insertSubstring2(String original, String insertion, int position) {
StringBuilder builder = new StringBuilder(original);
builder.insert(position, insertion);
return builder.toString();
}
String base = "abcdef";
System.out.println(insertSubstring1(base, "p", 2)); // abpcdef
System.out.println(insertSubstring2(base, "k", 3)); // abckdef
Replacing Substrings at Specific Positions
Two methods for replacing substrings: manual substring manipulation or using StringBuilder's replace method.
// Method 1: Manual replacement
public static String replaceSubstring1(String original, String replacement, int start) {
return original.substring(0, start) + replacement +
original.substring(start + replacement.length());
}
// Method 2: StringBuilder replacement
public static String replaceSubstring2(String original, String replacement, int start) {
StringBuilder builder = new StringBuilder(original);
builder.replace(start, start + replacement.length(), replacement);
return builder.toString();
}
String data = "abcdef";
System.out.println(replaceSubstring1(data, "pp", 2)); // abppef
System.out.println(replaceSubstring2(data, "kk", 3)); // abckkf