当前位置: 首页 > 知识库问答 >
问题:

如何获取新替换字符串的新值?[副本]

蔺昊穹
2023-03-14

我对java还是新手。是否有办法获取已替换的新字符串?

import java.io.*;
public class Test {

    public static void main(String args[]) {
        String str = new String("wew");
        System.out.println(str.replaceAll("w", "61"));
        System.out.println(str.replaceAll("e", "31"));
    }
}

输出:

61e61
w31w

期望的新输出:

613161

我想得到输出字符串61e61然后将e替换为31

共有3个答案

景远航
2023-03-14

让我们回顾一下为什么您的代码没有提供您所期望的。

创建一个带有"wew"的实例。

String str = new String("wew");

然后将“wew”中的“w”替换为“61”,并打印结果“61e61”

System.out.println(str.replaceAll("w", "61")); //61e61

现在,这里重要的部分是str.replaceAll的结果是一个新的实例,所以str仍然是wew。

System.out.println(str); // wew

这解释了为什么第二次替换将打印“w31w”

System.out.println(str.replaceAll("e", "31")); //w31w

原因是String是不可变的,所以当您尝试更改不可变实例的值时,会返回一个新实例。因此,为了保留它,您需要将该实例分配给html" target="_blank">变量。

str = str.replaceAll("w", "61");

现在,结果保存在变量“str”中

System.out.println(str); // 61e61

现在,不可变类的一个好处是方法通常可以被链接,因为返回值是类本身的实例。所以你可以同时调用多个方法。

str = str.replaceAll("w", "61").replaceAll("e", "31");
System.out.println(str); // 613161

但是,如果要打印中间结果,则需要在两条语句中完成

    str = str.replaceAll("w", "61");
    System.out.println(str); // 61e61
    System.out.println(str = str.replaceAll("e", "31")); // 613161

注意最后一条语句,可以合并赋值和打印语句。首先将计算str=...,然后将打印结果。

淳于功
2023-03-14

你用错了。类字符串的方法replaceAll返回一个字符串。

您必须再次使用返回值(可以写在一行中):

    String str = "wew".replaceAll("w", "61").replaceAll("e", "31");
    System.out.println(str);

输出:613161

蒋栋
2023-03-14

您可以将replaceAll链接为:

System.out.println(str.replaceAll("w", "61").replaceAll("e", "31"));

目前,您正在返回两个不同的字符串和两个print语句。

System.out.println(str.replaceAll("w", "61")); // returns new string '61e61'
System.out.println(str.replaceAll("e", "31")); // returns new string 'w31w'
 类似资料:
  • 问题内容: 我在MySQL数据库中有一个带有以下各列的表 网址就像: 我想将所有网址更新到另一个域 保持文件名不变。 我必须运行什么查询? 问题答案:

  • 我有一个包含逗号的字符串。但是,我想用一点代替逗号。这一定是可能的,不幸的是我做不到。我不只是要拿回来。5。不幸的是,逗号只去掉了所有的东西。

  • 我有这样的桌子: 在该

  • 问题内容: 我有一个用逗号分隔的产品列表,并且由于该项目列表已被新产品项目替换,因此我试图用新产品项目列表来修改此CSV列表。 我正在尝试使用split fn转换为行,然后替换这些值,然后再次将列转换为行。还有其他可能吗? 输出为: 问题答案: 将您的逗号分隔列表转换为XML。使用数字表XQuery和获取具有它们在字符串中的位置的单独ID。使用带有to和order by的技巧构建逗号分隔的字符串。

  • 假设我有一个字符串,如下所示: 我想把“abcd”换成“dddd”。我曾试图做这样的事: 它不起作用。有什么建议吗? 编辑:更具体地说,我在Java工作,我试图解析超文本标记语言文档,具体地说

  • 像这样的空字符串isnull()找不到空字符串