截取字符串,不允许出现半个的,例如123卡3,截取4位是123
/**
* @param args
*/
public static void main(String[] args) {
String info = "1234か5sss";
System.out.println(subString(info, 6));
}
public static String subString(String strInfo, int subLength) {
if (strInfo == null) {
throw new IndexOutOfBoundsException("string is null.");
}
int strLength = strInfo.length();
int strByteLength = strInfo.getBytes().length;
if (strLength == strByteLength) {
return strInfo.substring(0, subLength);
} else {
byte[] buffer = new byte[subLength];
byte[] bytes = strInfo.getBytes();
for (int i = 0; i < subLength; i++) {
if (i > bytes.length) {
break;
}
buffer[i] = bytes[i];
}
if (new String(buffer).equals(strInfo.substring(0, subLength))) {
return strInfo.substring(0, subLength);
} else {
return strInfo.substring(0, subLength - 1);
}
}
}
分享到:
相关推荐
实现一个函数,根据指定的字节数截取字符串,并确保不截断汉字。 #### 17. Java编程,打印昨天的当前时刻 使用`LocalDate`和`LocalDateTime`类及其相关的`minusDays`方法来实现。 #### 18. 抽象类和接口的区别? ...
Java工程师面试题主要涵盖软件开发的生命周期、面向对象特性、字符串操作、垃圾收集机制、循环控制、内存管理以及变量的作用域等核心知识点。以下是对这些知识点的详细解释: 1. **软件生命周期**:软件生命周期...
10. **编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。** - 字符串截取函数需要考虑多字节字符的完整性,如中文字符可能占用多个字节。 11. **抽象类和接口的区别?** - ...
#### 十六、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 这种情况下需要注意处理中文字符的截取,因为一个中文字符由多个字节组成。 ```java public static String ...
16. **截取字符串**: - 需要考虑字符编码,确保汉字不被分割,可以使用`String`的`substring`方法结合字符编码判断。 17. **打印昨天的当前时刻**: - 使用`java.util.Calendar`或`java.time`包中的类计算日期,...
编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串 - 需要考虑中文字符的字节数。 - 使用`getBytes()`和`new String()`方法实现。 #### 17. 指出下面程序的运行结果 这类...