`
jafisher
  • 浏览: 56896 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

java中的 indexOf 与 replace 问题

阅读更多
  碰到一个应用场景,有一表单字符串:
String test = "<form><input ...><input ...>...<input ...></form>";
  现在需要在最后一个<input ...>字段后再加上一个<input ...>字段,用来实现特定的功能,前提是这个字符串长度是不定长的,<input ...>的个数也是不定的。
  当时碰到这个问题直接想到两个方法,indexOf和replace,下面给出我的解决方法。

indexOf:
  String test = "<form><input ...><input ...>...<input ...></form>";
  String str = "<input last>";
  int ch = test.indexOf("</form>");
  test = test.substring(0, ch) + str + test.substring(ch, test.length());

  /** 结果 */
  test = "<form><input ...><input ...>...<input ...><input last></form>"


replace:
  String test = "<form><input ...><input ...>...<input ...></form>";
  String str = "<input last>" + "</form>";
  test = test.replace("</form>", str);

  /** 结果 */
  test = "<form><input ...><input ...>...<input ...><input last></form>"


  两个方法的复杂度基本一样,但我觉得第一种可能更灵活一点,因为如果后面</form>字段也是不定长的话,repalce方法就不能直接这么用了,可能还得和indexOf结合用,更麻烦。

  indexOf方法:指定所要查找的内容在字符串中第一次出现的位置,如果未出现则返回-1,区分大小写。lastIndexOf方法基本一样,有以下几种用法:
String str = "hello world";

/** 查找字符0第一次出现的位置索引*/
int a = str.indexOf("o");

/** 查找字符0从索引4开始第一次出现的位置索引*/
int b = str.indexOf("o", 4);

/** 查找字符0最后一次出现的位置索引*/
int c = str.lastIndexOf("o");

/** 查找字符0在索引4内最后一次出现的位置索引*/
int d = str.lastIndexOf("o", 4);
int e = str.lastIndexOf("o", 3)

/** 结果 */
a=4,b=4,c=7,d=4,e=-1


  replace方法:在字符串中对替换相应的字符或字符串,相关方法还有replaceFirst与replaceAll。
  replaceFirst:替换在原始字符串中第一次出现的字符或字符串,以后的不管。
  replaceAll:与replace相比都是全部替换,不同的是基于规则表达式的替换,对特殊字符的处理有些不同。
  String test = "a1b2c1d2";
  String a = test.replace("1", "3");
  String b = test.replaceFirst("1", "3");
  String c = test.replaceAll("\\d", "e");

  /** 结果 */
  a = "a3b2c3d2"
  b = "a3b2c1d2"
  c = "aebecede"
分享到:
评论

相关推荐

    java中字符串的操作汇总

    ### Java中字符串的操作汇总 在Java编程语言中,字符串(`String`)是极其重要的一个概念,被广泛应用于各种场景之中。为了更好地理解和运用Java语言,掌握字符串的各种操作方法至关重要。下面将详细介绍Java中字符...

    JAVA个人资料JAVA

    9. **String字符串的用法**:Java中的String是不可变对象,它有丰富的API供开发者进行字符串操作,如concatenation、substring、indexOf、replace等。此外,还会涉及String对象与StringBuilder/StringBuffer的区别。...

    java中英文字符串处理.

    例如,`str.indexOf("编程")`会返回"Java编程"中"编程"出现的第一个位置。 7. **长度获取**:`length()`方法返回字符串的长度,不包括结束的空字符`\0`。例如,`str.length()`会给出"Java编程"的字符数。 8. **...

    Java第三次作业 Java第三次作业

    6. **字符串处理**:String类在Java中广泛使用,包含许多实用的方法,如substring、indexOf、replace等。学生可能需要编写代码对字符串进行操作。 7. **函数式编程**:Java 8引入了函数式编程的概念,如Lambda...

    北交大java习题(大一版)

    12. **字符串处理**:String类的常见操作,如concatenation,substring,indexOf,replace等。 13. **卡内基题目**:可能涉及一些更进阶或实践性的编程问题,旨在提升解决问题的能力和代码质量。 在“Lab File”中...

    java练习题_java_

    4. **字符串**:String类是Java中处理文本的重要工具,了解其不可变性、常用方法如substring、indexOf、replace等。 5. **异常处理**:Java通过try-catch-finally语句块进行异常处理,理解异常的分类和如何自定义...

    Java基础尚硅谷宋红康学习笔记

    6. **字符串处理**:String类在Java中扮演重要角色,提供了丰富的字符串操作方法,如concat、substring、indexOf、replace等。 7. **多线程**:Java内置了对多线程的支持,通过Thread类或实现Runnable接口可以创建...

    JAVA 认证 SCJP官方中文指南

    5. **字符串处理**:介绍String类的特性,字符串的不可变性,以及常用的方法如substring、indexOf、replace等。 6. **输入/输出流**:讨论I/O流的概念,包括文件操作、字节流和字符流,以及缓冲区流和对象序列化。 ...

    java去除字符串中的空格、回车、换行符、制表符.pdf

    Java 字符串处理技巧:去除空格、回车、换行符、制表符 ...* 使用 indexOf() 方法查找字符串中的指定字符或子字符串。 Java 字符串处理提供了多种方法和技巧来处理字符串。选择合适的方法取决于具体的应用场景和需求。

    Java习题_java编程_

    7. **字符串处理**:String类在Java中是不可变的,提供了丰富的字符串操作方法,如concat、substring、indexOf、replace等。 8. **IO流**:Java的I/O流处理涵盖了文件读写、网络通信等多种场景,包括字节流和字符流...

    java 记事本(功能较全面且界面美观)

    5. **查找与替换**:记事本可能使用`String`类的`indexOf()`和`replace()`方法来实现查找和替换功能。查找时,可以遍历文本并返回匹配的位置;替换则根据找到的匹配项,更新`Document`中的文本。 6. **自动换行**:...

    Java基础知识ppt(适合自学)(中文)

    6. **字符串处理**:讲解Java中的String类,包括字符串的创建、比较、拼接和常见方法,如substring、indexOf、replace等。 7. **异常处理**:介绍如何使用try-catch-finally结构来捕获和处理程序运行时可能出现的...

    Java面试题,10万字208道Java经典面试题总结(附答案)

    因此,对Java的理解和掌握,特别是面试中的常见问题,是每个Java开发者必须熟练掌握的。以下是一些Java面试中常见的知识点: 1. JDK和JRE的区别: JDK(Java Development Kit)是Java开发工具包,它包含了编写、...

    东北大学java课件

    6. **字符串处理**:String类的常用方法,如substring、indexOf、replace等,以及StringBuilder和StringBuffer的使用,它们在实际编程中应用广泛。 【进阶篇】 随着对基础知识的掌握,你将深入到更高级的主题: 1...

    java导出文件文件名处理

    本文将详细介绍如何在Java中处理导出文件时的文件名问题,确保用户能够正常下载带有中文或其他特殊字符的文件名。 #### 知识点一:理解文件名编码问题 在Web应用中,当服务器向客户端发送文件时,HTTP协议中会包含...

    Java记事本程序 (Java程序设计入门实例,本人老师)

    在Java中,String类提供了丰富的字符串操作方法,如substring、indexOf、replace等,用于处理用户输入和显示的内容。同时,可能还会用到StringBuilder或StringBuffer类进行字符串的拼接,以避免多次创建新的字符串...

    黑马java教程知识点笔记整理

    字符串是不可变的,可以通过String类提供的各种方法进行操作,如concat()、substring()、indexOf()、replace()等。 【异常处理】 Java使用异常处理机制来处理运行时错误。异常是通过throw语句抛出,然后使用try-...

    Java实训书资料--- java程序源代码

    8. **字符串处理**:Java的String类提供了丰富的字符串操作方法,如concatenation、substring、indexOf、replace等。源码中会展示如何高效地处理字符串。 9. **文件和目录操作**:Java的File类允许对文件和目录进行...

    IBM-ETP-java培训11.Java 常用类讲解2.ppt

    4. **字符串处理**:String类在Java中是不可变的,提供了大量方法如substring、indexOf、replace等进行字符串操作。StringBuilder和StringBuffer线程安全,适合在需要多次修改字符串的场景。 5. **异常处理**:Java...

    完整版 Java初级教程 Java语言程序设计 第7章 Java中的常用类(共14页).ppt

    - `indexOf(String s)`和`lastIndexOf(String str)`分别找到子字符串第一次出现和最后一次出现的索引。 - `substring(int beginIndex, int endIndex)`提取字符串的一部分。 - `replaceAll(String old, String new...

Global site tag (gtag.js) - Google Analytics