`

递归进行字符串截取

 
阅读更多

递归进行字符串截取:

 要求:字符串长度最大不超过256个字符.现在要将此字符串分拆成四段。每段最大不超过64个字符。如果第64个字符不是空格符,则从第64个字符往前找,找到的第一个空格符,并把0-该空格符位置间的子串截取,做为第一段;

然后对剩下的字符串采用类似的操作。

代码:

package com.gobusiness.common.util;
public class DescUtil {
	//the N control the line you want to create
	public static final int N = 4;
	private String [] strArray = null;
	public DescUtil(String [] strArray){
		this.strArray = strArray;
	}
	
	public void setStrArray(String[] strArray) {
		this.strArray = strArray;
	}

	public String[] getStrArray() {
		return strArray;
	}

	public int getArrayLen(){
		return this.strArray.length;
	}
	
	public void initArray(String strDesc, int i) {
		String str = "";
		String strTemp = "";
		strDesc = strDesc.trim();
		
		if(i == this.getArrayLen()){
			return;
		}
		
		if(strDesc.length()<=64){
			str = strDesc;
			strArray[i] = str;
			return;
		}
		
		
		if(strDesc.charAt(63)==' '){
			str = strDesc.substring(0, 63);
			strTemp = strDesc.substring(64);
			initArray(strTemp,i+1);
		}else{
			strTemp = strDesc.substring(0, 64);
			int M2 = strTemp.lastIndexOf(" ");
			if(M2 == -1){
				str = strDesc.substring(0, 64);
				strTemp = strDesc.substring(64);
				initArray(strTemp,i+1);
			}else{
				str = strDesc.substring(0, M2);
				strTemp = strDesc.substring(M2+1);
				initArray(strTemp,i+1);
			}
		}
		
		
		if(strArray[i]==null);{
			strArray[i] = str;
		}
	}
}

 

 

我把每次截取的子串放在数组的元素中。。

示例结果:

测试代码:
 String DescriptionOfCommodity = "";
	  String DescriptionOfCommodity1 = "";
	  String DescriptionOfCommodity2 = "";
	  String DescriptionOfCommodity3 = "";
	  DescriptionOfCommodity = "111111112222222333333";
String[] strArray = new String[DescUtil.N];
	  DescUtil descUtil = new DescUtil(strArray);
	  descUtil.initArray(DescriptionOfCommodity,0);
	  strArray = descUtil.getStrArray();
	  if(strArray!=null){
			 DescriptionOfCommodity = CommonUtil.null2String(strArray[0]);
			 DescriptionOfCommodity1 = CommonUtil.null2String(strArray[1]);
			 DescriptionOfCommodity2 = CommonUtil.null2String(strArray[2]);
			 DescriptionOfCommodity3 = CommonUtil.null2String(strArray[3]);
	  }
	  

 

 在类中数组的长度来控制进行分拆的行数

分享到:
评论

相关推荐

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

    通过熟练掌握`std::string`的`find`和`find_last_of`方法,开发者可以方便地处理各种字符串截取和查找任务。此外,结合递归技术,还能处理更复杂的字符串操作,如分割路径名获取子目录。这些基础知识对于C++程序员来...

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

    根据给定的文件信息,本文将详细介绍如何在C#中实现从字符串中截取数字的方法。这种方法通过遍历字符串中的每个字符,判断其是否为数字或数字符号(如正负号),并将其添加到结果中。该方法适用于任何包含数字与非...

    java字符串处理取出括号内的字符串

    例如,我们可以使用`substring()`方法来截取字符串的一部分,但这并不适用于提取括号内的内容,因为我们需要识别开括号和闭括号的位置。 接下来,我们引入正则表达式(Regular Expression),它是处理字符串的强大...

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

    虽然这个类可能没有使用正则表达式,但在复杂的字符串截取场景中,正则表达式是非常强大的工具。例如,`preg_match_all()`可以用来提取所有匹配模式的子串,`preg_replace()`则能进行更复杂的替换操作。 5. **类库...

    输入一个字符串,输出所有该字符串的组合情况

    - **字符串操作**:包括字符串的截取、比较、拼接等。 - **递归原理**:理解如何定义递归函数,以及如何处理基本情况和递归情况。 - **回溯法**:知道如何设计回溯算法,如何在遇到错误或无效选择时撤销操作。 - **...

    求字符串中的第一个数字

    - **性能优化**:对于非常大的字符串,可以考虑使用非递归的方式来减少递归调用带来的开销。 以上就是关于“求字符串中的第一个数字”的详细知识点介绍。通过这些知识点的学习,可以帮助我们更好地理解和掌握 Java ...

    字符串反解析成树结构

    在解析字符串时,我们会首先按照关键字(如"id", "pid"等)进行分割,然后将每条数据映射到一个`Map`对象中,例如`HashMap, String&gt;`。每条数据映射为键值对,键是关键字,值是对应的数据。接着,我们将所有映射项...

    c#将字符串的每个字符进行颠倒输出

    C#提供了System.String类来处理字符串,它包含了许多用于操作字符串的方法,如Length属性用于获取字符串长度,Substring方法用于截取子字符串等。 二、字符串反转方法 1. 使用CharArray 我们可以先将字符串转换为...

    java按字节截取带有汉字的字符串的解法(推荐)

    针对题目中给出的代码,该方法`idgui`通过递归实现了按字节截取字符串的功能。它首先计算原始字符串`s`使用UTF-8编码时的字节数`changdu`,如果这个长度大于指定的字节数`num`,则从原始字符串中去掉最后一个字符,...

    sql带分隔符的截取字符串示例

    5. `SELECT SUBSTRING(@str,CHARINDEX(',',@str,1)+1,LEN(@str)) AS '从第一逗号开始截取出后面的字符串'`:`SUBSTRING`函数用于从字符串的指定位置开始截取指定长度的子字符串。这行代码从第一个逗号之后开始截取,...

    函数 字符串.zip

    3. **操作**:字符串支持多种操作,包括连接(concatenation)、截取(substring)、查找(searching)、替换(replacement)、分割(splitting)等。 4. **方法**:许多编程语言为字符串提供了内置的方法,如...

    增加C语言字符串处理和集合类型数据结构、算法的纯C库.zip

    5. 字符串截取与分割:可能包含从字符串中提取子串(如`str_substring`)或者按分隔符分割字符串(如`str_split`)的功能。 6. 字符串格式化:类似于`sprintf`的功能,允许用户按照特定格式生成字符串。 接下来是...

    js-leetcode题解之字符串字符最短路径-题解.zip

    endIndex)`截取字符串的一部分。在解决这道题目时,这些方法可能会派上用场。 二、动态规划 动态规划是一种用于解决复杂问题的有效算法,它通过将问题分解成更小的子问题来求解。在这道题中,我们可能需要找到一个...

    Java经典面试题(带答案)

    这些知识点涵盖了Java编程语言的多个方面,包括数据统计、特殊数字、递归、字符串处理、输入输出、金额转换、字符串截取、排序算法、正规表达式、字符串倒叙、数组统计、时间转换和文本文件统计等。

    vc++ 带通配符的字符串匹配算法实例源代码

    2. **字符串类(String)**:C++标准库中的`std::string`类是处理字符串的基本工具,它提供了丰富的操作方法,如比较、截取、插入和替换等。在实现通配符匹配时,我们需要对`std::string`对象进行遍历和比较。 3. **...

    JS 删除字符串最后一个字符的实现代码

    总结起来,本文介绍了在JavaScript中删除字符串最后一个字符的几种实现方法,包括基本的字符串截取方法,以及如何利用这些方法快速有效地解决问题。同时,还展示了递归函数在特定情况下处理字符串的应用。通过这些...

    经典php冒泡排序面试题

    标题与描述中的知识点主要聚焦在两个方面:一是PHP中的冒泡排序算法,二是字符串处理,具体涉及了在GBK编码下的字符串截取方法。下面将详细展开这两个知识点。 ### 冒泡排序算法 冒泡排序是一种简单的排序算法。它...

    Java实现字符串倒序输出的常用方法小结

    每次递归时,将字符串的最后一个字符截取出来并打印,然后对剩余的字符串进行递归调用,直到字符串长度为1时结束递归。这种方式虽然逻辑清晰,但当字符串较长时可能会导致栈溢出。示例代码如下: ```java public ...

Global site tag (gtag.js) - Google Analytics