0 0

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

/**
      * 该方法将传入的字符串 从右往左按照指定的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, ~~~~ 感觉好像是往字符里追加符号,实在做不出来了。麻烦哪位帮忙解答下。谢谢啊,十分感谢~~~~分不多。。。请帮个忙~~~

问题补充:
蔡华江 写道
很简单啊,将String打散为char[]。再逆序遍历一次就是了

具体代码怎么实现呀。。请问下。我才学Java,学的晕晕的。今天老师讲的Java类也听的似懂非懂,这个是老师布置的作业。
谢谢啦。。。
OO 
2010年11月24日 21:36

3个答案 按时间排序 按投票排序

0 0

采纳的答案

刚写了下,你看看。
应该还可以优化。

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();  
	}

2010年11月24日 23:11
0 0

	public static String conver(String str, String insertChar, int insertNumber) { 
		StringBuilder sb = new StringBuilder();
		int i = 1, length = str.length();
		while(i <= length){
			sb.insert(0,str.charAt(length - i));
			if ((i != length) && (i%insertNumber == 0)){
				sb.insert(0,insertChar);
			}
			i++;
		}
		return sb.toString();
    }

2010年11月24日 22:16
0 0

很简单啊,将String打散为char[]。再逆序遍历一次就是了

2010年11月24日 21:42

相关推荐

Global site tag (gtag.js) - Google Analytics