疯狂java讲义第四章作业的一些小问题

第二题 循环输出等腰三角形

public class Tower {
    public void draw(int len)
    {
        //先画每一行
        for(int i=0;i

第四题 按字节截取字符串

我自己写的代码如下,代码的问题是不满足题设的汉字要求为两个字符

public class SubStr {
    
    //private String[] str;
    private String result;
    public String DoSubStr(String str,int i,int len)
    {
        result="";
        //用charAt每次返回一个char字节存在String里面
        //从i 开始,截取长度为len
        for(int k=0;k

因此去网络上查找别的人的代码,发现一个可以将汉字找出来的办法。
用到的方法有
string.valueOf();这个可以吧obj转换成string类型
在“GBK”中汉字编码为2个字节 可以和英文进行区分
string.valueOf(c).getBytes("GBK").length
因此,修改之后的代码

import java.io.UnsupportedEncodingException; 
public class SubStr {
    
    //private String[] str;
    private String result;
    public String DoSubStr(String str,int i,int len)
    throws UnsupportedEncodingException
    {
        /*if(str!=null&&!"".equals(str))
        {
            str = new String(str.getBytes(),"GBK");
            
        }
        */
        result="";
        //用charAt每次返回一个char字节存在String里面
        //从i 开始,截取长度为len
        for(int k=0;k1;
        
    }

    public static void main(String[] args) throws UnsupportedEncodingException {
        // TODO Auto-generated method stub
        SubStr subStr1=new SubStr();
        String result=subStr1.DoSubStr("我ZWR爱JAVA", 0, 6);
        System.out.println(result);
    }
}

p.s 昨天我的电脑放在教室里被一个小偷偷走了。so....第六题的代码随着电脑一起丢了(我昨天敲了一下去才敲出来的结果... 伤痛欲绝).....so我要接着往下学第五章啦~~~

你可能感兴趣的:(疯狂java讲义第四章作业的一些小问题)