`
karlhell
  • 浏览: 106587 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

字符串截取,引号内容不截取算法。

阅读更多
String str = "a,b,c,\"$1,563\",\"$2,445\",d";
我要把这个字符串截取成
a
b
c
$1,563
$2,445
d


//过程式代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test {
 public static void main(String[] args) throws Exception {
  String str = "a,b,c,\"$1,563\",\"$2,445\",d";

  List result = split(str);
  for (Iterator iter = result.iterator(); iter.hasNext();) {
   System.out.println(iter.next());
  }
 }

 public static List split(String str) throws Exception {
  List result = new ArrayList();

  if (str != null && str.length() > 0) {
   int start = 0;
   for (int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);
    if (c == ',') {
     result.add(str.substring(start, i));
     if (str.charAt(i + 1) != '\"') {
      start = i + 1;
     } else {
      start = i + 2;
     }
    } else if (c == '\"') {
     int end = str.indexOf("\"", start);
     if (end == -1) {
      throw new Exception("引号不匹配!");
     } else {
      result.add(str.substring(start, end));
      if (end < str.length() && str.charAt(end + 2) != '\"') {
       start = end + 2;
      } else {
       start = end + 3;
      }
      i = end + 1;
     }
    }

    //加上末尾字符串
    if (i == str.length() - 1) {
     String string = str.substring(start, str.length());
     if (string.length() > 0) {
      result.add(string);
     }
    }
   }
  }

  return result;
 }
} 
分享到:
评论

相关推荐

    c#字符和字符串

    - 截取:使用Substring()方法截取字符串的一部分。 - 查找:IndexOf()和LastIndexOf()方法查找字符或子字符串的位置。 - 替换:Replace()方法替换字符串中的特定字符或子字符串。 - 分割:使用Split()方法根据...

    09 数组及字符串实验

    而在Python中,字符串是不可变的对象,可以使用引号(''或"")直接创建。 实验可能涵盖了以下几个方面: 1. **数组操作**:包括初始化数组、遍历数组、修改数组元素、查找和排序等。例如,你可以实现一个冒泡排序...

    c++面试字符串_C++字符串_

    5. 字符串截取: `substr()`函数可以截取字符串的一部分,例如`str.substr(pos, len)`。 三、字符串转换 1. 字符串与基本类型之间的转换: 可以使用`std::stoi()`, `std::stol()`, `std::stoll()`等函数将字符串...

    字符串操作的应用,与文章配套

    5. **子字符串截取**:通过`substring()`方法提取字符串的一部分。例如,`"Hello, World!".substring(7)`返回`"World!"`。 6. **查找与替换**:`indexOf()`用于查找指定字符或子串首次出现的位置,`lastIndexOf()`...

    字符串考试.zip

    例如,在Python中,可以使用单引号或双引号来创建字符串,而在Java中,字符串是对象,需通过`String`类的构造函数来创建。 2. **字符串属性**:字符串是不可变的,这意味着一旦创建,就不能更改。这涉及到字符串的...

    string字符串解释

    1. **字符串定义**:在许多语言中(如C++、Java、Python等),字符串是由字符组成的序列,可以用引号括起来。例如,“Hello, World!”就是一个字符串。 2. **字符串操作**:包括创建、拼接、截取、替换、查找、排序...

    字符串习题总结.rar

    9. **字符串的不可变性**:在大多数编程语言中,字符串是不可变的,意味着一旦创建,就不能更改其内容。任何修改操作都会生成新的字符串。 10. **字符串优化**:在处理大量字符串时,了解内存管理(如Python的字符...

    字符串剪切实例程序

    标题中的“字符串剪切实例程序”指的是在编程领域中处理字符串时进行截取或分割的操作。在编程中,字符串是常见的数据类型,用于存储和处理文本。字符串剪切通常涉及以下知识点: 1. **字符串定义**:在大多数编程...

    6 MATLAB深入学习字符串.7z

    - 基本创建:MATLAB通过双引号("")创建字符串,如`str = "Hello, World!"` - 数组创建:可以创建字符串数组,例如`strArray = ["MATLAB", "Programming", "Strings"]` - 字符串串联:使用`strcat`或` sprintf`...

    10 深入学习字符串.zip

    但在大多数语言中,我们可以创建新的字符串,比如通过`+`运算符连接两个字符串,或使用方法如`substring`截取部分字符串。 - 查找与替换:`indexOf`和`lastIndexOf`用于查找子字符串位置,`replace`或`replaceAll`...

    第十三章 字符串

    字符串可以使用单引号或双引号进行声明,并且支持多种操作,如连接(concatenation)、查找子串、替换子串、截取子串、排序以及各种模式匹配。 1. 字符串的创建与表示 在Python中,我们可以这样创建字符串: ```...

    高级PHP程序员必备知识

    - 这些函数可以帮助完成字符串的截取、替换、查找等操作。 **1.1.8 字符串常见算法和原理** - 字符串匹配算法:例如 KMP 算法、Boyer-Moore 算法等,用于提高字符串匹配的效率。 - 字符串排序算法:可以使用快速...

    易语言简单的倒转文本例程.7z

    在编程中,倒转文本是一项常见的任务,例如在字符串处理、文本游戏或某些特定算法中。易语言提供了丰富的内建函数和语法结构来处理字符串,其中包括了对字符串进行倒转的方法。下面我们将深入探讨易语言如何实现这一...

    串-数据结构实验报告.docx

    在实际的存储过程中,字符串会被双引号包围,系统会自动在末尾添加'\0',这样就明确了串的起始和结束位置。 实验中,源程序使用了动态内存分配来创建字符串变量`s`和`t`,并利用`malloc`函数为它们分配100个字符的...

    浅析51个PHP处理字符串的函数

    在PHP中,字符串处理是编程过程中不可或缺的一部分,尤其是在处理用户输入、输出HTML内容或者进行数据操作时。这里我们将详细探讨51个PHP字符串处理函数,这些函数涵盖了从基本的字符串长度计算到复杂的字符串转换和...

    PHP5 字符串处理函数大全

    PHP5中包含了大量用于处理字符串的函数,这些函数能够帮助开发者高效地完成各种字符串操作任务,比如字符串的截取、连接、加密、格式化以及字符位置的查找等。下面我们将对这些常用的PHP5字符串处理函数进行详细的...

    EE14 Strings.docx

    字符串截取 (`string.slice`) ```javascript // 从字符串中提取子串 substring = string.slice(startIndex, endIndex); // 示例 var string = ee.String('Hello World!'); var substring = string.slice(6, 11); ...

    对文字的添加删除查找的处理

    例如,在Python中,字符串可以用单引号或双引号括起来。在进行文字处理时,我们通常会用到字符串的内置方法,如`append`(添加)、`remove`(删除)和`find`(查找)等。 添加功能:当用户希望在现有文本中插入新的...

    缘份测试小程序

    2. **字符串函数和方法**:VB2010提供了一系列内置的字符串函数和方法,如`Len()`用于获取字符串长度,`Mid()`用于截取字符串的一部分,`Replace()`用于替换字符串中的特定子串,`Trim()`去除字符串两端的空格,以及...

Global site tag (gtag.js) - Google Analytics