`
zeyuphoenix
  • 浏览: 59806 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

收集面试题(五)(截取字符串,不允许出现半位)

阅读更多
截取字符串,不允许出现半个的,例如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);
			}
		}

	}
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java经典面试题.doc

    实现一个函数,根据指定的字节数截取字符串,并确保不截断汉字。 #### 17. Java编程,打印昨天的当前时刻 使用`LocalDate`和`LocalDateTime`类及其相关的`minusDays`方法来实现。 #### 18. 抽象类和接口的区别? ...

    java工程师面试题.pdf

    Java工程师面试题主要涵盖软件开发的生命周期、面向对象特性、字符串操作、垃圾收集机制、循环控制、内存管理以及变量的作用域等核心知识点。以下是对这些知识点的详细解释: 1. **软件生命周期**:软件生命周期...

    java面试题.pdf

    10. **编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。** - 字符串截取函数需要考虑多字节字符的完整性,如中文字符可能占用多个字节。 11. **抽象类和接口的区别?** - ...

    java面试题大集合

    #### 十六、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 这种情况下需要注意处理中文字符的截取,因为一个中文字符由多个字节组成。 ```java public static String ...

    Java面试题以及答案(小生).pdf

    16. **截取字符串**: - 需要考虑字符编码,确保汉字不被分割,可以使用`String`的`substring`方法结合字符编码判断。 17. **打印昨天的当前时刻**: - 使用`java.util.Calendar`或`java.time`包中的类计算日期,...

    java面试题

    编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串 - 需要考虑中文字符的字节数。 - 使用`getBytes()`和`new String()`方法实现。 #### 17. 指出下面程序的运行结果 这类...

Global site tag (gtag.js) - Google Analytics