zfliaokai 2010-11-24 21:36
浏览 316
已采纳

一道简单的字符串算法题,有空的大虾进来帮忙看看呀~~~

/**
* 该方法将传入的字符串 从右往左按照指定的insertNumber值位 插入一个指定的insertChar代表的符号.
*
* @param str
* 需要进行转换的字符串
* @param insertChar
* 需要插入的字符
* @param insertNumber
* 字符插入的位置
* @return 返回一个插入后的新字符串 举例,如果传入的字符串值为"123909000",
* insertChar为">>",insertNumber为4 则返回"1>>2390>>9000"
*/
public String conver(String str, String insertChar, int insertNumber) {

    }

题就这个方法,具体需要实现什么,方法注释都写好了。我想了好久都写不出来,用split方法似乎也不行,因为split里的参数必须在该字符串中有,而这题的要求又不是这样。如:逗号进行分割,分割的条件是3位。例如:1234分割后位1,234 ~~~~ 如:@进行分割,分割的条件是3位。例如:1234分割后位1@234, ~~~~ 感觉好像是往字符里追加符号,实在做不出来了。麻烦哪位帮忙解答下。谢谢啊,十分感谢~~~~分不多。。。请帮个忙~~~

  • 写回答

3条回答 默认 最新

  • wxwx1985 2010-11-24 23:11
    关注

    刚写了下,你看看。
    应该还可以优化。
    [code="java"]public String conver(String str, String insertChar, int insertNumber) {

        StringBuffer res = new StringBuffer();  //最终返回的结果
        StringBuffer unStr = new StringBuffer(); //存放反序的字符串
    
        int length = str.length();
        for(int i = length - 1 ; i >= 0 ; i--){
            if( insertNumber < length && i % insertNumber == 0 && i != length - 1 ){
                unStr.append(insertChar);
            }
            unStr.append(str.charAt(i));
        }
        System.out.println("反序:"+unStr.toString());
    
        for(int i = unStr.length() - 1 ; i >= 0 ; i--){
            res.append(unStr.charAt(i));
        }
        System.out.println("结果:"+res.toString());
        return res.toString();  
    }
    

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?