0 0

用递归截取字符串并换行,都执行了,但是只返回第一次的结果5

我的代码是这样的:
/*
* @parameters String s:是要校验的字符串
* @parameters int length:行长,多长需要换行
* @parameters String spa:换行以后根据要求需要添加的空格字符串
* @parameters String br:换行符号
* @parameters String newString:需要返回的新字符串,初始值为空字符串
* */
public static String checkStringLengthAndChangeRows(String s,int slen,String spa,String br,String newString){
s = isEmpty(s);
String tempString = "";
if(s!=""){
int n = s.getBytes().length;
if(n>slen){
int len = 0;
for(int i=0;i<s.length();i++){
char c = s.charAt(i);
int clen = (""+c).getBytes().length;
len+=clen;
if(len>slen){
if((s.charAt(i+1)+"").getBytes().length==1){
len+=1;
}
String son =  new String(s.getBytes(),0,len);
tempString = s.substring(son.length());
newString+= son+br+spa;
break;
}
}
checkStringLengthAndChangeRows(tempString, slen, spa,br,newString);
}else{
newString += s;
}
}
String returnString = newString;
return returnString;
}
2013年9月23日 13:57

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

0 0

传个集合进去,往里面装,

2013年9月23日 16:00
0 0

楼上正解,每次递归newString都会重新赋值,所以只看到一个结果

2013年9月23日 15:28
0 0

引用
public static String checkStringLengthAndChangeRows(String s,int slen,String spa,String br,String newString)


如果你一定要这样设计的话,需要将newString类型改为StringBuffer或者StringBuilder

程序中有两点:
1,方法体内改形参的引用不改变实参的引用
2,java中的String是Immutable的

2013年9月23日 14:53

相关推荐

    详解C++ string常用截取字符串方法

    `find`方法用于在字符串中查找指定子字符串`strSub`的第一次出现。它的基本语法是`find(string strSub, npos)`,其中`strSub`是要查找的子字符串,`npos`表示搜索的起始位置。如果找到`strSub`,`find`返回子字符串...

    java 用递归实现字符串反转

    - **递归步骤**:如果字符串长度大于等于2,则通过递归调用 `reverseString(x.substring(1, x.length()))` 来反转除第一个字符外的所有字符,并将第一个字符添加到递归调用的结果末尾。 #### 四、递归过程详解 ...

    递归实现字符串逆序

    ### 递归实现字符串逆序 #### 知识点概览 本文将详细介绍如何使用C++中的递归技术来实现字符串的逆序操作。逆序字符串是一个常见的编程问题,在多种场景下都有应用,例如文本处理、算法设计等。通过递归方法解决此...

    Python用递归实现字符串反转

    ### Python用递归实现字符串反转 #### 知识点概览 1. **递归的基本概念** 2. **Python中的递归函数实现** 3. **字符串处理与操作** 4. **递归在字符串反转中的应用** 5. **递归调用的深度限制问题** #### 递归的...

    删除字符(递归)_删除字符c++_递归删字符_

    在这个示例中,`deleteChar`函数接收一个字符串和一个字符作为参数,然后根据字符是否出现在字符串开头来决定是返回剩余部分的递归结果还是直接拼接保留的字符。注意,这里我们使用了`std::string::substr()`来获取...

    递归实现字符串反向输出

    本文将通过一个具体的例子——使用C语言实现字符串的反向输出,来深入理解递归的基本概念及其应用。 #### 一、递归基础 递归(Recursion)是指在一个函数的定义或执行过程中直接或间接地调用自身的一种方法。递归...

    递归反转字符串C++代码

    c++递归反转字符串代码 大家可以参考看看 欢迎分享

    java递归字符串反转

    网上绝大部分java递归实现字符串反转缺少字符串判空条件,我加了上去。

    foreach字符串递归查找.rar

    标题中的“foreach字符串递归查找”表明这是一个关于在编程中使用`foreach`循环以及递归方法来处理字符串数组或集合的教程。`foreach`是C#等编程语言中用于遍历可迭代对象(如数组、列表)的关键字,而递归则是一种...

    递归逆序输出字符串

    递归逆序输出字符串,代码自己看吧!!

    递归方法求阶乘字符串反转C#

    否则,函数会取出最后一个字符并存储在`strResult`中,然后对除了最后一个字符外的剩余字符串进行递归调用,最后将结果连接起来。 ### 四、总结 递归是一种强大而优雅的编程技术,它能够简化代码,使得程序更加...

    字符串逆序-使用C语言+递归实现字符串逆序.zip

    在逆序字符串的场景下,我们可以把字符串看作是第一个字符和剩余部分的组合,递归地处理剩余部分,直到剩余部分为空,然后将逆序后的剩余部分与第一个字符连接起来。 下面是一个使用递归实现C语言字符串逆序的基本...

    将字符串里面的数字进行截取方法

    6. **递归调用**:处理完当前位置及之后的所有字符后,如果未达到字符串末尾,则递归调用 `CunNum` 方法,并将 `startNum` 更新为下一个位置。 7. **输出结果**:当遍历完整个字符串后,输出最终的 `total` 值。 ##...

    C#递归方法求阶乘字符串反转小程序

    在这个`ReverseString`函数中,我们通过`Substring(1)`获取去掉第一个字符后的字符串,然后将其与第一个字符串联起来,最终得到反转的结果。同样,递归会在字符串为空时停止。 结合这两个概念,可以编写一个小程序...

    求字符串中的第一个数字

    根据给定的信息,我们可以分析并总结出以下与“求字符串中的第一个数字”相关的知识点: ### 1. 字符串操作基础 #### 1.1 字符串简介 在 Java 中,`String` 类用于表示不可变的字符序列,即字符串。字符串在 Java ...

    一个php截取指定字符串之间的字符串的类.zip

    - `strpos()`: 查找子串在字符串中的位置,返回的是第一个匹配子串的字符的索引。 - `substr()`: 截取字符串的一部分,基于提供的开始位置和长度。 - `strstr()`: 返回字符串首次出现某个子串后的部分。 - `str_...

    sql将多行数据生成一个一个字符患的递归脚本

    将多行数据生成一个一个字符患的递归脚本,方便,快捷。要顶哦。

    递归实现回文判断

    2. **递归情况**:比较字符串的第一个字符和最后一个字符,如果它们相等,则继续对剩余的子字符串进行递归检查;如果不相等,则直接返回不是回文。 ### 四、代码解析 在给定的C语言代码中,我们可以通过以下步骤...

    json字符串递归解析

    JSON格式通常由键值对组成,键用引号括起来,值可以是字符串、数字、布尔值、数组、null或另一个JSON对象。 在处理JSON数据时,我们经常需要对JSON字符串进行解析,将其转化为JavaScript对象以便进一步操作。当JSON...

    递归反转字符串(带中文)

    该文档是反转字符串的,很多资源只是反转英文字符串,该文档包括可以反转中文的,并且有递归和非递归的方法。仅仅只是一个cpp文件,只要新建一个新的空工程,直接加载该cpp就可以运行使用了。

Global site tag (gtag.js) - Google Analytics