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

面试题:分割字符串

阅读更多
package interview.string;

public class SplitDemo
{

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub

		String str = "ab中国d人a";

		String ret = split(str, 4);
		System.out.println(ret);
	}

	/**
	 * 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。
	 * 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,
	 * 6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
	 */
	public static String split(String str, int num)
	{
		if (num <= 0 || num > str.length())
		{
			System.out.println("输入有误!");
			System.exit(-1);
		}
		String ret = "";

		byte[] buf = str.getBytes();

		int temp = 0;
		int englishCount = 0;
		for (int i = 0; i < num; i++)
		{
			temp = buf[i];

			// 计算在此位置(包括)以前有多少英文字符
			if (!(temp < 0 || temp > 255))
			{
				englishCount++;
			}
		}

		// 汉字的总共字节数
		int chinaCount = (num - englishCount);

		// 如果汉字的总字节数为偶数,说明,该位置是汉字的最后一个字节
		if (chinaCount % 2 == 0)
		{
			ret = new String(buf, 0, num);
		}
		else
		{
			ret = new String(buf, 0, num - 1);
		}

		return ret;

	}
}

 

2
0
分享到:
评论

相关推荐

    C语言基础面试题(03-字符串函数).docx

    - **问题5**: `strtok`用于分割字符串,`sprintf`用于格式化输出,`getline`用于读取行。 - **问题6**: 逆序字符串,可以从后向前复制字符。 - **问题7**: 字符串转整数,可以使用`sscanf`或手动解析。 - **问题...

    JAVA 面试题:常见17道面试题总结

    - `split()`:分割字符串,返回一个分割后的字符串数组。 - `getBytes()`:返回字符串的 byte 类型数组。 - `length()`:返回字符串长度。 - `toLowerCase()`:将字符串转成小写字母。 - `toUpperCase()`:将字符串...

    C语言字符串练习(习题+答案).zip

    7. 字符串操作:了解strtok()函数分割字符串,以及其它如strpbrk(), strspn(), strcspn()等字符串处理函数的使用。 8. 字符数组与字符串的关系:理解如何在字符数组中操作字符串,包括动态分配内存和释放内存。 在...

    php面试题及答案

    - **正则表达式**:`preg_split()`用于正则表达式分割字符串,`ereg()`已废弃,不应再使用。 - **变量和类型转换**: - `isset()`和`empty()`用于检查变量状态。 - 强类型比较`===`与弱类型比较`==`的区别。 - ...

    Java面试题大全2023版.docx

    Java 面试题大全 2023 版 ...split():分割字符串,返回一个分割后的字符串数组。getBytes():返回字符串的 byte 类型数组。 本文档只是Java 面试题大全 2023 版的一部分,更多的问题和答案将在后续文章中继续更新。

    Java经典面试题总结&面试问题大全及答案大全

    ### Java经典面试题详解 #### 1.... - `split(String regex)`: 根据正则表达式分割字符串。 以上知识点涵盖了Java面试中常见的几个方面,帮助准备面试的开发者们更好地理解和掌握Java基础知识。

    常见的Java上机面试题

    **代码实现**:参考给出的代码示例,可以看到采用了Java的`Scanner`类读取用户输入,`String`类的`substring`方法分割字符串,以及正则表达式来判断字符类型。通过一个循环遍历字符串中的每个字符,根据字符类型更新...

    Java正则表达式面试题解析:探索复杂匹配规则与高效字符串处理

    Java正则表达式是编程语言Java中用于处理字符串的强大工具,它允许开发人员根据预定义的模式进行查找、替换和分割操作。以下是一系列关于Java正则表达式的面试题及其详细解析,帮助你深入理解这一关键技能。 1. **...

    Java基础常用面试题

    - `split()`: 分割字符串成数组。 - `indexOf()`: 查找字符或子字符串的位置。 - `replace()`: 替换指定字符或子字符串。 - `substring()`: 截取字符串的一部分。 - `equals()`: 比较字符串内容是否相等。 - `...

    java面试题-50道最容易考的java题

    ng new) 用新字符串替换旧字符串 split(String regex) 使用正则表达式分割字符串 trim() 去掉字符串两端的空白符 Java 面试题涵盖了诸多核心概念,包括但不限于: 1. **JDK 与 JRE**:JDK 是 Java 开发工具包,...

    php面试题(普通PHP程序员笔试题,普通PHP程序员面试题)

    - 正则表达式:理解正则语法,如匹配、替换和分割字符串。 5. **文件与目录操作**: - 文件读写:fopen、fread、fwrite、fclose等函数的使用。 - 目录操作:mkdir、rmdir、scandir、chdir等函数的应用。 6. **...

    128道Python面试题.pdf

    答:可以使用Python的字符串split()函数来分割字符串,然后使用dict()函数将其转换为字典。 8. 请按alist中元素的age由大到小排序。 答:可以使用Python的sorted()函数来排序列表,使用lambda函数作为排序关键字。 ...

    java初级面试题

    【Java初级面试题详解】 1. **集合框架的理解** - 集合(Collection)在Java中是一种用于存储对象的数据结构,具有可变长度,允许存放不同类型的对象,并提供了批量操作元素的方法。Collection接口是所有集合类的...

    华为od-华为od练习题之字符串分割.zip

    这个压缩包“华为od-华为od练习题之字符串分割.zip”显然包含了与字符串处理相关的练习题目,可能是为了考察应聘者在Python编程语言中的字符串操作能力。 【描述】描述中的“华为od_华为od练习题之字符串分割.zip”...

    JAVA常规面试题和答案

    - `split()`: 按照指定分隔符分割字符串并返回数组。 - `getBytes()`: 将字符串转换为字节数组。 - `length()`: 返回字符串的长度。 - `toLowerCase()`: 转换为小写。 - `toUpperCase()`: 转换为大写。 - `...

    Java 面试题208道.docx

    - `split()`: 根据分隔符分割字符串并返回数组。 - `getBytes()`: 字符串转换为字节数组。 - `length()`: 返回字符串长度。 - `toLowerCase()`: 将字符串转换为小写。 - `toUpperCase()`: 转换为大写。 - `...

    华为-华为od题库练习题之字符串分隔.zip

    【标签】"华为od 练习题" 这两个标签指出了该内容与华为OD相关,同时是练习性质的材料,意味着它们可能是为了准备华为公司的面试或者内部培训而设计的,旨在测试或提升开发者对字符串处理的实际操作能力。...

    23年Java基础面试题

    - `split()`: 根据分隔符将字符串分割成数组。 - `getBytes()`: 将字符串转换为字节数组。 - `length()`: 返回字符串的长度。 - `toLowerCase()`: 转换为小写字符串。 - `toUpperCase()`: 转换为大写字符串。 ...

    Java后端开发+Java中级面试题

    Java后端开发面试题涉及到多个核心领域,包括Redis的使用场景和持久化机制、Docker与虚拟机的区别、MySQL调优、以及消息队列RabbitMQ的基础知识。下面将逐一详细解析这些知识点。 1. Redis应用场景: - a. 数据...

    华为面试上机题(一)(10题)

    - 计算最后一个单词的长度:可以通过分割字符串获得单词数组,然后获取数组最后一个元素的长度。 - 十六进制数值转换为十进制:使用Java内置的Integer.parseInt方法,以16作为基数进行解析。 - 字符串拆分:可以...

Global site tag (gtag.js) - Google Analytics