You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何处理含双引号的字符串 实现text__white替换为text__red

问题原因

Java字符串字面值中,双引号属于特殊字符,必须用反斜杠\转义后才能直接写在代码里,所以你注释里的示例直接赋值会报错。如果是用户通过控制台输入的内容,不需要额外转义,Java会自动处理成合法的String对象。另外你现有代码里Scanner初始化存在错误,System.in不需要加双引号,否则会读取固定字符串"System.in"而非用户输入的内容。


解决方案

场景1:代码中硬编码该HTML字符串

如果要把示例中的HTML直接写在代码里作为字符串常量,有两种兼容写法:

  • 写法1:转义所有内部双引号(兼容所有Java版本)
// 对内部每个"都加\转义
String str = "<p style=\"text-align: center;\">. <span class=\"text__white\">Techno power</span></p>";
  • 写法2:使用文本块(Java 15及以上版本支持)
    不需要手动转义内部双引号,代码可读性更高:
String str = """
    <p style="text-align: center;">. <span class="text__white">Techno power</span></p>
    """;

场景2:读取用户输入后替换类名

用户控制台输入的内容会被nextLine()自动封装为合法的String对象,不需要额外转义,直接调用replace方法替换即可,修正后的完整代码如下:

import java.util.*;

class ChangeCSS{
  public static void main(String[] args){
    System.out.println("Enter the Code to be converted to red css");
    // 去掉System.in的双引号,正确初始化扫描器
    Scanner sc = new Scanner(System.in);
    String str = sc.nextLine();
    // 替换所有text__white为text__red
    String result = str.replace("text__white", "text__red");
    // 输出替换后的结果
    System.out.println("转换后的代码:");
    System.out.println(result);
    sc.close();
  }
}

效果验证

输入示例内容:
<p style="text-align: center;">. <span class="text__white">Techno power</span></p>
输出结果:
<p style="text-align: center;">. <span class="text__red">Techno power</span></p>


内容的提问来源于stack exchange,提问作者Ronnie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:45:07