Java String.replace()方法"无效"的原因及解决方式
首先我们来看个例子
public class Demo1 { public static void main(String[] args) { String aa="abcd"; aa.replace("a","f"); System.out.println("输出结果是"+aa); } }
运行结果是什么呢?我们先看看这个方法的api
返回一个新的字符串,用newChar替换此字符串中出现的所有oldChar
所以这里的结果为:输出结果是abcd
而不是fbcd,要想替换则为下面代码
public class Demo1 { public static void main(String[] args) { String aa="abcd"; String replaceStr = aa.replace("a", "f"); System.out.println("输出结果是"+replaceStr); } }
补充知识:Java String字符串替换replace和replaceAll不生效
使用java String类型自带replace和replaceAll方法会出现不生效的问题,主要是因为写法的问题
String类的replace方法是带有返回值的,并不是修改String对象本身
举例
public static void main(String[] args){ String str = "aaa"; String ret = str.replace("aa","b"); System.out.println(str); System.out.println(ret); } aaa ba
以上这篇Java String.replace()方法"无效"的原因及解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
String.replaceAll方法详析(正则妙用)
前言 我通常是不太关心代码的具体实现的,因为我的开发语言很杂,倾向于一些最简单通用的方式去解决.今儿不小心在群里看到一位朋友发了下面的java代码,感觉自己还是很局限很无知的: String str1 = "createTime"; String str2 = "createTimeAt"; String regex = "([A-Z])+"; System.out.println(str1.replaceAll(regex, "_$1
-
Java中设置JAVA_HOME无效的解决方法
前言 如果你的电脑装有不止一个java环境,但是设置JAVA_HOME无效时,可以参考下面的这个方法,下面话不多说了,来一起看看详细的介绍吧. 背景 我的电脑是win7 64位系统,之前学习java时安装了java 7 配置了JAVA_HOME为64位的jdk 7 快速进入环境变量的方法: 点击win的start按钮 在搜索框中输入env,即可快速定位到环境变量选项 用cmd打开窗口,运行java -version ,可以知道当前运行的java版本是java 7 为了适配jetty服务器,又安装
-
Java去除字符串中空格的方法详解
昨天写了一个关于Excel文件处理的脚本,在字符串匹配功能上总是出现多余不正确的匹配,debug调试之后,发现一个坑. ------->代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空格.中间空格) 遂整理下java关于字符串去除空格的方法. 1.方法分类 str.trim(); //去掉首尾空格 str.replace(" ",""); //去除所有空格,包括首尾.中间 str.replaceAll(" "
-
Java String.replace()方法"无效"的原因及解决方式
首先我们来看个例子 public class Demo1 { public static void main(String[] args) { String aa="abcd"; aa.replace("a","f"); System.out.println("输出结果是"+aa); } } 运行结果是什么呢?我们先看看这个方法的api 返回一个新的字符串,用newChar替换此字符串中出现的所有oldChar 所以这里的结果
-
Java内存各部分OOM出现原因及解决方法(必看)
一,jvm内存区域 1,程序计数器 一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器. 2,java栈 与程序计数器一样,java栈(虚拟机栈)也是线程私有的,其生命周期与线程相同.通常存放基本数据类型,对象引用(一个指向对象起始地址的引用指针或一个代表对象的句柄),reeturnAddress类型(指向一条字节码指令的地址) 栈区域有两种异常类型:如果线程请求的栈深度大于虚拟机所允许的深度,将抛StrackOverflowError异常:如果虚拟机栈可以动态扩展(大部分虚拟机都可动
-
JAVA String.valueOf()方法的用法说明
一.由基本数据型态转换成String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是 String.valueOf() 这个参数多载的方法 有以下几种 (1)String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 (2)String.valueOf(char c) : 将 char 变量 c 转换成字符串 (3)String.valueOf(char[] data) : 将 char 数组 data
-
java编译后的文件出现xx$1.class的原因及解决方式
java编译后的文件名字带有$接数字的就是匿名内部类的编译结果,接名字的就是内部类的编译结果 例如: TestFrame$1.class是匿名内部类的编译结果,TestFrame$MyJob.class则是内部类MyJob编译后得到的. 使用内部类可以隐藏一些实现的细节, 等等, 还有其他一些好处. 使用匿名类的时候, 要注意代码的可读性 补充知识:JNI之javah使用时报错:找不到类文件 初学java,想使用JNI,在用javah生成头文件时,总是报错找不到类: 看了javah的help,本
-
Android开发中requestfocus()无效的原因及解决办法
前言 最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正确就登陆,错误就提示密码错误,并且输入框获取焦点,但是实际中确不起作用 package com.example.hfs.requestfocusdemo; import android.content.Intent; import android.support.v7.app.AppCompatActivity; impo
-
Java中关于线程安全的三种解决方式
三个窗口卖票的例子解决线程安全问题 问题:买票过程中,出现了重票.错票-->出现了线程的安全问题 问题出现的原因:当某个线程操作车票的过程中,尚未操作完成时,其他线程参与进来,也操作车票 如何解决:当一个线程a在操作ticket的时候,其他线程不能参与进来,知道线程a操作完ticket时,其他线程才可以开始操作ticket,这种情况即使线程a出现了阻塞,也不能被改变 在Java中,我们通过同步机制,来解决线程的安全问题.(线程安全问题的前提:有共享数据) 方式一:同步代码块 synchroniz
-
django model的update时auto_now不被更新的原因及解决方式
gmt_create自动添加auto_now_add:gmt_modify自动更新auto_now class CommonInfo(models.Model): """基类,提供共同信息,不会创建真实的table""" class Meta: # 声明自己为抽象基类 abstract = True # 下面表示先根据更新时间gmt_modify降序排序,如果更新时间相同,再根据创建时间gmt_create降序排序 ordering = ['-g
-
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
最近在使用 Python notebook时老是出现python崩溃的现象,如下图,诱发的原因是"KERNELBASE.dll",异常代码报"40000015". 折腾半天,发现我启动notebook时是用自定义startup.bat方式方式启动的,bat文件的内容为 start C:\Anaconda3\python.exe "C:/Anaconda3/Scripts/jupyter-notebook-script.py" 平时双击这个bat文
-
浅谈Pycharm的项目文件名是红色的原因及解决方式
今天在继续学习Python时,打开Pycharm后,发现有一个项目下的项目文件名是红色的,如下图: 刚开始我以为是我升级 Pycharm导致的,但我并没有急着去解决,因为并不会影响我执行代码等.当我修改了一点代码后,我将它add并commit到Git后,才发现问题的原因:是我以前将Word设置成了Git的一个仓库,但是当时这些文件我并没有添加到Git里,所以会显示为红色.(这倒是挺好,可以提示我记得提交) 解决方法一: 如上我说的那样,add(add后会显示成绿色)并commit到Git(或者其
-
vue data对象重新赋值无效(未更改)的解决方式
vue存在一个比较深的问题就是data中的属性对象如果在初始化的时候为{},那么后面在方法用普通的js语法赋值会无效 这里是data data() { return { model: {} }; } 这里是方法里的普通赋值 afterUpload(response) { this.model.icon = response.url; } 普通方法会无效,需要使用vue提供的方法重新显示声明 afterUpload(response) { this.$set(this.model,'icon',r
随机推荐
- 浅谈Linux grep与正则表达式
- Golang中的参数传递示例详解
- js data日期初始化的5种方法
- ASP.NET缓存 方法和最佳实践
- 非常经典的PHP文件上传类分享
- asp:生成静态页面函数
- 插件管理框架 for Delphi(二)
- JDBCTM 指南:入门3 - DriverManager
- Lua中遍历文件操作代码实例
- VBS教程:方法-GetFileName 方法
- Centos7.2 编译安装PHP7.0.2的步骤
- 支持数组的ADDSLASHES的php函数
- 通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)
- 在网站上应该用的30个jQuery插件整理
- 基于jQuery实现表格内容的筛选功能
- PHP弱类型语言中类型判断操作实例详解
- 分享J2EE的13种核心技术
- php4的session功能评述(二)
- Android使用KeyStore对数据进行加密的示例代码
- 详解基于vue-cli配置移动端自适应