黑马程序员技术交流社区
标题:
如何按照字节数截取字符串啊?
[打印本页]
作者:
李志敏
时间:
2013-4-14 17:32
标题:
如何按照字节数截取字符串啊?
本帖最后由 李志敏 于 2013-4-15 23:33 编辑
基础测试题 中的 我知道有substring() 但不是按字节数截的 看了几天视频 不知道在哪有讲的 知道的顺便告诉我哪一集讲相关内容的?
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要,如“我ABC”4,应该截为“我AB”, 输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”
作者:
李尧
时间:
2013-4-14 17:45
String的构造方法
String(byte[] bytes, int offset, int length)
作者:
朱德帅
时间:
2013-4-14 22:13
这题我做过!这是我的做法,不一定是最好的做法。但是可以运行出来!
package cn.itheima;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;
public class Test10 {
/**
* @param args
* @throws UnsupportedEncodingException
*/
/**
* 思路:1.先将输入的字符串转换成字符数组,然后遍历字符数组
* 2.遍历的同时记录字节数,如果字节数小于要求的字节数就加入到预先定义的字符串中
* 3.遍历结束后输出字符串
*/
public static void main(String[] args) throws UnsupportedEncodingException {
String str;//记录用户输入字符串
int count;//记录用户输入的截取字节数
StringBuffer newstr = new StringBuffer();//定义结果字符串
int index=0;//用于记录遍历时字节的长度
//获取用户输入信息
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个字符串:");
str = scan.nextLine();
System.out.println("请输入截取的字节数:");
count = scan.nextInt();
char [] strChars = str.toCharArray();
for(char ch : strChars){
String s = "";
s = s.valueOf(ch);
int i = s.getBytes().length;//记录每个字符的字节数
index =index + i;//这里需要先进行计数,在进行判断
//如果记录数小于或是等于要求的字节数,就将字符累加
if(index<=count){
newstr.append(s);
}
}
System.out.println("新字符串为:"+newstr);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2