【问题标题】:I want to update the string data which has double quotes and semicolon in it我想更新其中包含双引号和分号的字符串数据
【发布时间】:2021-10-28 06:39:31
【问题描述】:
import java.util.*;

class ChangeCSS{

  public static void main(String[] args){
    System.out.println("Enter the Code to be converted to red css");
    Scanner sc=new Scanner("System.in");
    String str=sc.nextLine();

    //Entered by user String str="<p style="text-align: center;">. <span class="text__white">Techno power</span></p>";
  }
}

用户输入上述字符串

我正在尝试将 text__white 更新为 text__red

但是在任何 String 对象中输入上述字符串都会弹出错误

【问题讨论】:

  • 错误是什么?
  • 将字符串放入单引号中,这将允许您使用未转义的双引号。在任何其他字符之前,您必须放置“\”反斜杠,以将其标记为字符串的一部分。
  • @JustInCoding 异常的非法开始和中心后的分号
  • @AndrejJurkin Java 不支持字符串的单引号;那将是javascript。
  • @AndrejJurkin 你能提供一些例子吗..我是java新手。用户输入上述字符串,我想将 text__white 替换为 text__red

标签: java collections stream


【解决方案1】:

您可以在每个特殊字符前面使用正斜杠 如下-

String str="<p style=\"text-align: center;\"><span class=\"text__white\">Techno power</span></p>";

【讨论】:

  • 以上字符串是用户输入的
  • @Ronnie 这是否意味着用户可以访问您的源代码或订购修改它、重新编译它然后运行它?还是有一些您没有向我们展示的附加功能?
  • 如果来自用户,应该格式化,从用户那里获取输入并打印出来查看。
【解决方案2】:

我知道上述答案可以更正您的字符串,但您可以使用String.replace(String str1, String str2) 方法将单词text__white 替换为text__red

public class ReplaceString {
  public static void main(String[] args){
    String str = "<p style=\"text-align: center;\"><span class=\"text__white\">Techno power</span></p>";
    String strrep = str.replace("text__white", "text__red");
    System.out.println(str);
    System.out.println(strrep);
  }
}

您可以从此处在代码中实现所需的逻辑。

【讨论】:

  • 您不需要使用replaceAll,因为您没有使用重要的正则表达式。只需使用str.replace("text__white", "text__red") 即可避免正则表达式的开销。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2018-03-20
  • 2020-03-17
  • 1970-01-01
  • 2013-10-09
相关资源
最近更新 更多