Delphi中谨慎使用QuotedStr、QuotedString、DequotedString相关的函数

Delphi中谨慎使用QuotedStr、QuotedString、DequotedString相关的函数//以下测试代码vars,ss:string;begin//1.添加定界符(内容中含定界符的要转义)ss:=QuotedStr(s);//单引号ss:=s.QuotedString(””);//单引号//2.添加指定的定界符(内容中含定界符的要转义)ss:=AnsiQuotedStr(s,'”‘);//双引号ss:=s.QuotedString(‘”‘);//双引号//3.去掉定界符(内容中含连续两个定界符的要反转义)…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

//以下测试代码
var
  s, ss: string;
begin
  //JSON中包含大量双引号,方便测试出效果
  with TStreamReader.Create('全国adcode.json', TEncoding.UTF8) do
  try
    s := ReadToEnd;
  finally
    Free;
  end;
  //1.添加定界符(内容中含定界符的要转义)
  ss := QuotedStr(s);//单引号
  ss := s.QuotedString('''');//单引号

  //2.添加指定的定界符(内容中含定界符的要转义)
  ss := AnsiQuotedStr(s, '"');//双引号
  ss := s.QuotedString('"');//双引号

  //3.去掉定界符(内容中含连续两个定界符的要反转义)
  ss := AnsiDequotedStr(s, '"');//双引号
  ss := s.DeQuotedString('"');//双引号
end;

//经测试发现在个别情况下StringHelper方法非常慢
//1.s中含有大量双引号时,添加双引号定界符
//ss := s.QuotedString('"');//非常慢,比ss := AnsiQuotedStr(s, '"')慢几十倍
//2.s中含有大量双引号转义时,去除双引号定界符
//ss := s.DeQuotedString('"');//非常慢,比ss := AnsiDequotedStr(s, '"')慢几十倍
//3.单引号的添加与去除也是一样的
//所以,使用StringHelper的QuotedString和DeQuotedString方法时,要注意
//通过查看源码,发现AnsiQuotedStr和AnsiDequotedStr使用的指针操作
//而StringHelper的QuotedString和DeQuotedString使用逐个字符拷贝

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180714.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Matlab保存图片的几种方法「建议收藏」

    Matlab保存图片的几种方法「建议收藏」写在前面:本文系作者原创,转载或引用请注明文章出处,多谢!Matlab中保存图片有很多函数可以用到,本文将简单总结三种保存图像的方法,其他的日后补充。1、保存一幅经过处理的图像,又不希望损失其分辨率:采用imwrite()函数例:想保存图像img,可以写:imwrite(img,adressString);%adressString表示输出地址如果希望同时输出多张图片,可以这样定义string:adressString=[‘D:\picture\’sprintf(‘%0.4d’,nu

    2022年9月13日
    2
  • 安卓反编译_apk可以反编译吗

    安卓反编译_apk可以反编译吗本帖最后由好奇害死猫咪啊于2017-5-621:48编辑本教程为长期更新贴,有问题请及时反馈。如有更新请恕不另行通知。【前言】闲来无事水一贴。。。今天写个教程吧,反编译SystemUI实现状态栏时钟居中。其实说实话本来对华为靠右边的时间不怎么介意的,可一位朋友说什么也想换成类似iPhone的居中式,甚至不惜去刷XP框架,装重力工具箱。。当然了,结果大家可能已经想到了,首先是重力工…

    2022年9月18日
    2
  • java初学者教程

    前言:随着互联网的飞速发展,越来越多的人选择互联网行业,那么java也就成了其中之一的选择,而且选择java的人还挺多,为什么呢?容易入门,好找工作,工资相对还可以.那么相对应的市场上培训java的就很多了,各种培训机构,自学网站,学习平台,我们应该怎么选择呢,下面我就给大家介绍一个:HOW2J,目录一:介绍二:模块化教学三:工具材料代码可直接下载…

    2022年4月3日
    49
  • Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释[通俗易懂]

    Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释[通俗易懂]遇到这个JavaSerializable序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个Serializable接口,也就是为啥要序列化c,serialVersionUID这个的值到底是在怎么设置的,有什么用。有的是1L,有的是一长串数字,迷惑ing。我刚刚见到这个关键字Serializable的时候,就有如上的这么些问题。在处理这个…

    2025年8月12日
    4
  • 使用WinINet和WinHTTP实现Http訪问

    使用WinINet和WinHTTP实现Http訪问

    2021年12月9日
    43
  • C语言 continue「建议收藏」

    C语言 continue「建议收藏」C语言continue在循环语句中,如果希望立即终止本次循环,并执行下一次循环,此时就需要使用continue语句。案例#include<stdio.h>intmain(){

    2022年8月1日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号