zoukankan      html  css  js  c++  java
  • 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF",6,应该输出为"我ABC"而不是"我ABC+汉的半个"。

    在网上以前流传的代码是这样的:

    class SplitString {    

    String SplitStr;

        int SplitByte;

        
    public SplitString(String str, int bytes) {
            SplitStr 
    = str;
            SplitByte 
    = bytes;
            System.out.println(
    "The String is:′" + SplitStr + "′;SplitBytes="
                    
    + SplitByte);
        }

        
    public void SplitIt() {
            
    int loopCount;
            loopCount 
    = (SplitStr.length() % SplitByte == 0? (SplitStr.length() / SplitByte)
                    : (SplitStr.length() 
    / SplitByte + 1);
            System.out.println(
    "Will Split into " + loopCount);
            
    for (int i = 1; i <= loopCount; i++) {
                
    if (i == loopCount) {
                    System.out.println(SplitStr.substring((i 
    - 1* SplitByte,
                            SplitStr.length()));
                } 
    else {
                    System.out.println(SplitStr.substring((i 
    - 1* SplitByte,
                            (i 
    * SplitByte)));
                }
            }
        }
        
    public static void main(String[] args) {
            SplitString ss 
    = new SplitString(
                    
    "test中dd文dsdg老师的看见发lkjd"5);
            ss.SplitIt();
        }

    }

    我改进后的代码:

     

    class SplitString {    

        String SplitStr;

        int SplitByte;

        
    public SplitString(String str, int bytes) {
            SplitStr 
    = str;
            SplitByte 
    = bytes;
            System.out.println(
    "The String is:′" + SplitStr + "′;SplitBytes="
            
    + SplitByte);
        }

        
    public static void main(String[] args) {
            SplitString ss 
    = new SplitString(
                    
    "test中dd文fasjaslkjdfalsjf师的看见发lkjd",4);
            ss.split();
        }

        
    public void split() {
            
    for (int i = 0, len = SplitStr.length(); i < len; i = i + SplitByte) {
                
    if (i + SplitByte < len) {
                    System.out.println(SplitStr.substring(i, i 
    + SplitByte));
                }
                
    else {

                    System.out.println(SplitStr.substring(i, len));
                }
            }
        }
    }
  • 相关阅读:
    nginx实现请求的负载均衡 + keepalived实现nginx的高可用
    nginx的location配置详解
    nginx负载均衡算法
    nginx实现集群高可用
    Nginx:承受3万并发连接数,胜过Apache 10倍
    编程高手与调试高手
    Android 中调试手段 打印函数调用栈信息
    android 中打 Log 的一些技巧
    Java程序员应该知道的10个调试技巧
    Camera中对焦模式总结
  • 原文地址:https://www.cnblogs.com/zhonghan/p/1442241.html
Copyright © 2011-2022 走看看