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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© faith 中级黑马   /  2014-4-14 13:59  /  1558 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package javaTest;

public class zifujiequ {
        public static String getStr(int n, String str){
                return str.substring(0,n);
               
        }
        public static void main(String[]args){
                String a = "中国abc";
                System.out.println(a.substring(1, 3));
               
        }

}
截取第二位和第三位字符  和大家分享下 大家还有其他方法吗?

评分

参与人数 2技术分 +1 黑马币 +1 收起 理由
黑妞~ + 1
Silent_memory + 1

查看全部评分

3 个回复

倒序浏览
这是我的方法 仅供参考
方法一:
public class CutString{

        public static void main(String[] args) throws Exception {
               
                System.out.println(SubStringByByte("abc你好", 5));
        }
       
        public static String SubStringByByte(String str,int index)
        {
               
                if(index >= str.getBytes().length)
                {
                        return str;
                }
               
                String temp = str;
                for(int i = 0;i<str.length();i++)
                {
                        if(temp.getBytes().length <= index)
                        {
                                break;
                        }
                        temp = temp.substring(0, temp.length() - 1);
                }
                return temp;
        }
}
方法二:
package com.cg.test5;

import java.io.IOException;
public class Test {
        public static void main(String[] args) throws IOException {
                String string="abc你好呀,我真的很想进黑马!Hello";
                int len=string.getBytes("utf-8").length;
                for(int x=0;x<len;x++){
                        System.out.println("截取"+(x+1)+"个字节结果是:"+cutStringByU8Byte(string,x+1));
                }
        }
       
        public static String cutStringByU8Byte(String str,int len) throws IOException{
                byte [] buf=str.getBytes("utf-8");
                int count=0;
                for(int x=len-1;x>=0;x--){
                        if(buf[x]<0)
                                count++;
                        else {
                                break;
                        }
                }
                if(count%3==0)
                        return new String(buf,0,len,"utf-8");
                else if(count%3==1)
                        return new String(buf,0,len-1,"utf-8");
                else {
                        return new String(buf,0,len-2,"utf-8");
                }
        }
       
}

评分

参与人数 1技术分 +1 收起 理由
黑妞~ + 1

查看全部评分

回复 使用道具 举报
瞻仰一下。
回复 使用道具 举报
向日葵的曙光 发表于 2014-4-14 22:36
这是我的方法 仅供参考
方法一:
public class CutString{

厉害  我到现在没有完整的思路
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马