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
相关产品推荐
相关产品推荐

