A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李志敏 中级黑马   /  2013-4-14 17:32  /  1433 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李志敏 于 2013-4-15 23:33 编辑

基础测试题 中的  我知道有substring() 但不是按字节数截的 看了几天视频 不知道在哪有讲的 知道的顺便告诉我哪一集讲相关内容的?
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要,如“我ABC”4,应该截为“我AB”, 输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”

2 个回复

倒序浏览
String的构造方法
String(byte[] bytes, int offset, int length)
回复 使用道具 举报
这题我做过!这是我的做法,不一定是最好的做法。但是可以运行出来!
  1. package cn.itheima;

  2. import java.io.UnsupportedEncodingException;
  3. import java.util.Scanner;

  4. public class Test10 {

  5.         /**
  6.          * @param args
  7.          * @throws UnsupportedEncodingException
  8.          */
  9.         /**
  10.          * 思路:1.先将输入的字符串转换成字符数组,然后遍历字符数组
  11.          *                 2.遍历的同时记录字节数,如果字节数小于要求的字节数就加入到预先定义的字符串中
  12.          *                 3.遍历结束后输出字符串
  13.          */
  14.         public static void main(String[] args) throws UnsupportedEncodingException {
  15.                
  16.                 String str;//记录用户输入字符串
  17.                
  18.                 int count;//记录用户输入的截取字节数
  19.                
  20.                 StringBuffer newstr = new StringBuffer();//定义结果字符串
  21.                
  22.                 int index=0;//用于记录遍历时字节的长度
  23.                 //获取用户输入信息
  24.                 Scanner scan = new Scanner(System.in);
  25.                 System.out.println("请输入一个字符串:");
  26.                 str = scan.nextLine();
  27.                 System.out.println("请输入截取的字节数:");
  28.                 count = scan.nextInt();
  29.                
  30.                 char [] strChars = str.toCharArray();
  31.                 for(char ch : strChars){
  32.                         String s = "";
  33.                         s = s.valueOf(ch);
  34.                         int i = s.getBytes().length;//记录每个字符的字节数
  35.                         index =index + i;//这里需要先进行计数,在进行判断
  36.                         //如果记录数小于或是等于要求的字节数,就将字符累加
  37.                         if(index<=count){
  38.                                 newstr.append(s);
  39.                                
  40.                         }
  41.                 }
  42.                
  43.                 System.out.println("新字符串为:"+newstr);

  44.         }

  45. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马