Java如何替换第一个和最后一个字符串

Java替换第一个和最后一个字符串

1、测试类

package com.jeff.json;
import com.alibaba.fastjson.JSONObject;
public class JsonDemo1 {
 public static void main(String[] args) {
  String ret = "\"{\"success\":true,\"msg\":\"success\",\"data\":{}}\"";
  System.out.println(ret);
  if (ret.startsWith("\"")) {
   ret = replaceFirst(ret, "\"", "");
   System.out.println("去除前引号:" + ret);
  }
  if (ret.endsWith("\"")) {
   ret = replaceLast(ret, "\"", "");
   System.out.println("去除后引号:" + ret);
  }
  JSONObject result = JSONObject.parseObject(ret);
  System.out.println(result);
 }
 private static String replaceFirst(String ret, String strToReplace, String replaceWithThis) {
  return ret.replaceFirst(strToReplace, replaceWithThis);
 }
 public static String replaceLast(String text, String strToReplace, String replaceWithThis) {
  return text.replaceFirst("(?s)" + strToReplace + "(?!.*?" + strToReplace + ")", replaceWithThis);
 }
}

2、控制台

java 只替换String字符串中第一次出现的某个子串

问题现象:

今天在项目中遇到一个问题:如何替换一个String字符串中第一次出现的某个子串.

问题分析:

从问题可知,这个String字符串中应该含有多个该子串,然后这些子串是错落分布在这个String父串中的.

因此如果只是想要替换第一次出现的该子串的话,其实只需要调用String的replaceFirst()方法即可;

1.s.replaceFirst("正则表达式[被替换的子串]",替换后的子串);

但是呢,有一点需要注意的,就是这个方法的第一个参数是正则表达式,所以调用该方法的小伙伴记得先复习一下正则表达式的内容:

这里提几点:

  • .匹配除换行符以外的任意字符
  • ^匹配字符串的开始
  • $匹配字符串的结束
  • *重复零次或更多次
  • +重复一次或更多次
  • ?重复零次或一次

当然了,用到正则表达式总感觉挺麻烦的,其实这里也可以用 \ 转义字符来转义从而消除正则表达式的限制.

除了替换第一次出现的子串之外,还有一些其他的替换方法:

2.s.replace("被替换的子串",替换后的子串);

s.replace()用于替换父串中所有被匹配的子串,这个方法不需要正则表达式,是很常用的字符串替换方法

3.s.replaceAll("正则表达式[被替换的子串]",替换后的子串);

s.replaceAll()这个方法和s.replace()的作用是一样的,区别在于:首参数是正则表达式.

解决方法

String s = "#y*#test*#txt";
String s1 = s.replaceFirst("\\*#", "_");
String s1_2 = s.replaceFirst(".#", "_");
String s2 = s.replace("\\*#", "_");
String s2_2 = s.replace(".#", "_");
String s3 = s.replaceAll("\\*#", "_");
String s3_2 = s.replaceAll(".#", "_");

打印结果:

s1="#y_test*#txt"

s1_2="#y_test*#txt"

s2="#y*#test*#txt"

s2_2="#y*#test*#txt"

s3="#y_test_txt"

s3_2="#y_test_txt"

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • JAVA正则表达式及字符串的替换与分解相关知识总结

    JAVA正则表达式及字符串的替换与分解 Java 提供了 java.util.regex 包来与正则表达式进行模式匹配 java.util.regex 包主要包括以下三个类: Pattern 类: pattern 对象是一个正则表达式的编译表示.Pattern 类没有公共构造方法.要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象.该方法接受一个正则表达式作为它的第一个参数. Matcher 类: Matcher 对象是对输入字符串进行解释和匹配

  • Java 实现repalceAll只替换第二个匹配到的字符串

    String replace replaceFirst repaceAll区别 replace(char oldChar, char newChar) 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的. replaceAll(String regex, String replacement) 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串 replaceFirst(String regex, String rep

  • Java字符串格式化,{}占位符根据名字替换实例

    我就废话不多说了,大家还是直接看代码吧~ import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringFormatUtil { private static

  • java eclipse 整个项目或包查找只定字符串并替换操作

    java eclipse经常会用到整个类进行查找,ctrl+f,然后replaceall(XX,toXX).但是最近要对webservice上的项目进行检查,里面的运行程序不能有system.out.println这样的语句,因为服务器上的控制台输出会存储到一个指定路径的文件里,超过9gtomcat就会运行变慢,甚至挂掉.所以这里要用,ctrl+h,开启全项目或者全包搜索,用法如下: 1.选中项目名称或者包名称位置,ctrl+h 2弹出的界面中选取,file Search,在其中输入要查找的字符

  • java 替换docx文件中的字符串方法实现

    替换docx文件里面的 ${} 字符串 public class Main { public static void main(String[] args) throws Exception { String template = "C:\\Users\\lzh\\Desktop\\模板.docx"; String outSrc = "C:\\Users\\lzh\\Desktop\\简历.docx"; var is = new FileInputStream(te

  • java Matcher匹配头尾截取替换字符串的案例

    在java 编程中,我们常常有这样的需求:需要将一段字符串内的特定字符串,按照一定规则查找出来或替换,比如匹配文本开头规则和结束规则. 以下就是Matcher的使用: import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @Author changle * @Time 17/10/12. * @Desc 匹配头

  • Java如何替换第一个和最后一个字符串

    Java替换第一个和最后一个字符串 1.测试类 package com.jeff.json; import com.alibaba.fastjson.JSONObject; public class JsonDemo1 { public static void main(String[] args) { String ret = "\"{\"success\":true,\"msg\":\"success\",\"d

  • Java编程实现统计一个字符串中各个字符出现次数的方法

    本文实例讲述了Java编程实现统计一个字符串中各个字符出现次数的方法.分享给大家供大家参考,具体如下: import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo { //统计一个字符串中相应字符出现的次数 public static void main(String[] args) { // System.out.println("我们测试结果:"

  • java正则替换img标签中src值的方法

    主要功能是: 替换html字符串中img标签src的值. 代码如下: package com.junlenet.common.util; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * html处理工具类 * @author huweijun * @date 2016年7月13日 下午7:25:09 */ public class HtmlUtils { /** * 替换指定标签的属性和值 * @para

  • JAVA实现往字符串中某位置加入一个字符串

    我就废话不多说了,大家看代码吧~ String a = "hello"; StringBuffer sb = new StringBuffer(); 1. sb.append(a).insert(2,"aaa"); 结果 sb.toSring()为"heaaallo" 2. sb.append(a).replace(1, 3, "aaa"); //下标从第一开始,到第三个结束 结果 sb.toSring()为"haa

  • java可以作为第一门编程语言学习吗

    十年前,Java 还是计算机科学的入门课程中的必学语言.如果你想学其他语言,比如 C.Python.PHP,你就得专门选那个语言的课程,或者选相关的应用.但是现在,Java 不再受大学的青睐.根据国际计算机协会(ACM)的研究发现,截至 2014 年,Python 已经取代 Java 成了主流大学计算机入门课程必学的语言.但这个研究并不全面,因为它只覆盖了最主要的美国大学,而且它代表的只是几年前的一个时间点而已.但是,我依然强烈地感觉到,如果现在对计算机科学的入门课程使用的计算机语言做一次全面调

  • Java实现替换Word中文本和图片功能

    目录 前言 1.指定字符串内容替换文本 2.获取文档内容替换文本 3.图片替换文本 4.图片替换图片 前言 Word中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换.以下将要介绍的内容,除常见的以文本替换文本外,还将介绍使用不同对象进行替换的方法,具体可包括: 1. 指定字符串内容替换文本(通过方法replce(matchString, newValue, caseSensitive, wholeWord );直接指定替换的新字符串内容) 2. 获取文档内容替换文本(通过方法r

  • java正则替换sql中的参数实例代码

    目录 前言 要求: 分析: 代码: 测试: 总结: 前言 在处理sql参数的时候,替换圆括号里面只处理了一种情况.而没有从整体上进行处理!!! 这是一个思考问题上严重的偏向. 考虑问题时候,要先从整体开始考虑,逐步分解,再细分到局部! 要求: 替换sql里面的参数: SELECT a.table_id, a.table_title, a.table_name, a.table_serial, b.STAFF_NAME , b.REGION_NAME, b.operatingsystem, b.r

  • java实现向有序数组中插入一个元素实例

    整理文档,搜刮出一个java实现向有序数组中插入一个元素,稍微整理精简一下做下分享 package cn.jbit.array; import java.util.*; public class Insert { public static void main(String[] args) { //字符排序 char[] chars = new char[9]; chars[0] = 'a'; chars[1] = 'c'; chars[2] = 'u'; chars[3] = 'b'; cha

  • C++实现将一个字符串中的字符替换成另一个字符串的方法

    本文实例讲述了C++实现将一个字符串中的字符替换成另一个字符串的方法,分享给大家供大家参考.具体方法如下: 题目要求: 原地实现字符串中的每个空格替换成"%20",例如输入"We are happy", 输出"We%20are%20happy" 被替换的字符串当然不仅仅是空格,上面只是个例子 这是道很好的题目,也是百度面试中的一道题,题目不难,但是问题得考虑全面.这里给出如下实现代码: #include <iostream> #inc

随机推荐