首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >string.format():不使用加号的多行字符串

string.format():不使用加号的多行字符串
EN

Stack Overflow用户
提问于 2010-03-13 10:34:42
回答 4查看 866关注 0票数 2

string.format()如何帮助避免在这样的语句中使用"+“:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string statement =" SELECT DISTINCT titel as linieName" +
                  " FROM qry_Forecast_Taktzeiten" +
                  " WHERE linieName LIKE 'lin%';"; 

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-03-13 10:41:06

+上面的语句用于连接您创建的几个字符串,以使代码更具可读性。String.Format在这里帮不了你!

要避免字符串连接,可以执行以下操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
StringBuilder sb = new StringBuilder();
sb.Append(" SELECT DISTINCT titel as linieName");
sb.Append(" FROM qry_Forecast_Taktzeiten");
sb.Append(" WHERE linieName LIKE 'lin%';");
statement = sb.ToString();

如果你想用你拥有的某个变量替换'lin‘,你可以使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string statement =" SELECT DISTINCT titel as linieName" +
                  " FROM qry_Forecast_Taktzeiten" +
                  " WHERE linieName LIKE '{0}';";
statement = string.Format(staement, "lin%");

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sb.AppendFormat(" WHERE linieName LIKE '{0}';", "lin%");

但是,如果"lin%“是从用户条目获得的,则上述所有使用字符串替换({0})的方法都存在SQL注入攻击的风险。

所以最好的办法是使用:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
string statement =" SELECT DISTINCT titel as linieName" +
                      " FROM qry_Forecast_Taktzeiten" +
                      " WHERE linieName LIKE @match;";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = statement;
cmd.Parameters.Add(new SqlParameter("@match", "lin%"));
票数 3
EN

Stack Overflow用户

发布于 2010-03-13 10:36:48

这里没有必要避免加号运算符-编译器在编译时连接字符串常量,因此在运行时不会发生连接。

票数 4
EN

Stack Overflow用户

发布于 2010-03-13 10:38:54

您可以使用@运算符

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String linebreaks = @"Break
                      Lines
                      With @";

正如Daniel Brückner指出的那样,linebreaks的内容将包含空格。下面是上面代码的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"Break
                       Lines
                       With @"

如果您正在存储SQL,这不是问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2438001

复制
相关文章
JAVA字符串格式化——String.format()的使用
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。
DencyCheng
2020/03/31
65.7K0
JAVA字符串格式化——String.format()的使用
JAVA字符串格式化-String.format()的使用
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言的同学应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。
全栈程序员站长
2022/08/09
1.4K0
String.format()的使用(Java字符串格式化)
1 问题背景 当我们在开发中需要格式化时或者当一字符串中有某一部分是需要变化时,我们应该如何快速的进行处理呢?比如处理批量的url中www.xxx.com/s?index=后面需要带参数时。 JDK
晓果冻
2022/06/15
7150
JAVA String.format()的使用
String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。
DencyCheng
2022/06/29
4960
JAVA String.format()的使用
String.Format使用方法
private const string _extraClause = ” AND C_INTERNSHIPORG_INTERNSHIPID = {0}”;
全栈程序员站长
2021/11/24
9510
Java 多行字符串
在本文中,我们来说说 Java 的多行字符串(multiline strings )。
HoneyMoose
2022/08/08
4.1K0
Java 多行字符串
没使用加号拼接字符串,面试官竟然问我为什么
小小白:主要是为了确保String对象中存储的值不会被改变,充分利用字符串常量池的优化策略,同时字符串对象的hashCode也不会被改变。如果String设计成可变的,那么自定义的类就可以通过集成String,重写其中的方法将其存储的值改变。如果String是可变的,将String类型变量作为参数传递的过程中,存储的将有可能会被改变,这样会导致安全隐患。
JavaQ
2020/03/31
1.1K0
[C#] 用内插字符串取代string.Format()
自从有了编程这门职业,开发者就需要把计算机里面所保存的信息转换成更便于人类阅读的格式。C#语言中的相关API可以追溯到几十年前所诞生的C语言,但是这些老的习惯现在应该改变,因为C#6.0提供了内插字符串(Interpolated String)这项新的功能可以用来更好地设置字符串的格式。
科控物联
2022/03/29
7550
[C#] 用内插字符串取代string.Format()
C# 中的字符串内插 $对比string.Format
原文:https://blog.csdn.net/HeBizhi1997/article/details/123544524
_一级菜鸟
2023/10/23
2570
C# 中的字符串内插 $对比string.Format
Python 中多行字符串的水平串联
在 Python 中,字符串的串联是一种常见的操作,它允许您将两个或多个字符串组合成一个字符串。虽然垂直连接字符串(即一个在另一个下面)很简单,但水平连接字符串(即并排)需要一些额外的处理,尤其是在处理多行字符串时。在本文中,我们将探讨在 Python 中执行多行字符串水平连接的不同方法。
很酷的站长
2023/08/11
3880
Python 中多行字符串的水平串联
【Groovy】字符串 ( 字符串拼接 | 多行字符串 )
文章目录 一、字符串类型变量 二、多行字符串 三、完整代码示例 一、字符串类型变量 ---- 在双引号字符串中 , 使用 ${变量名} 进行字符串拼接 , ${变量名} 符号的取值 , 是在 定义时取值 ; def s1 = "Hello" def s3 = "${s1} World!!!" s1 = "Hello Groovy" // 修改被拼接的函数值 // 打印的值为 "Hello World!!!" println s3
韩曙亮
2023/03/30
3.1K0
【Groovy】字符串 ( 字符串拼接 | 多行字符串 )
C++中使用R“()“标记符书写多行字符串
那么在C++中有没有比较方便的方式书写SQL脚本呢?因为在实际编程中,对于那种较长的SQL脚本,我们如果在代码中一行写的话有时不容易阅读和理解。在油管上看到C++博主The Cherno的一篇String Literals in C++的视频,里面提到了使用R"()"标记符书写多行字符串的用法。
ccf19881030
2023/09/09
7840
C++中使用R“()“标记符书写多行字符串
【说站】python字符串的多行输出
1、字符串的每行末尾使用 \ 续行。以多行的形式书写字符串,每行的末尾使用 \ 续行。
很酷的站长
2022/11/23
1.6K0
Swift 多行字符串字面量
你可以在代码里使用一段预定义的字符串值作为字符串字面量。字符串字面量是由一对双引号包裹着的具有固定顺序的字符集。
赵哥窟
2020/07/21
3.6K0
Java String.format 方法使用介绍
String类,在JDK1.5中增加了一个非常有用的静态函数format(String  format, Objece...  argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一系列等待被格式化的对象。该函数对c语言中printf函数的用法进行了一定的模仿,因此有c语言基础的人学起来会轻松许多。下面我们着重讨论一下format 参数的格式及含义。          format参数中可以包含不需要转化的字符串,这些字符串是你写什么,最终就输出什么。同时还包含一些特殊格式的内容,来指定将哪个对象来转换,以及转换成什么形式。这种特殊的格式通通以 %index$ 开头,index从1开始取值,表示将第index个参数拿进来进行格式化。这一点比c语言要强一点, c语言只能按照参数的顺序依次格式化,而java可以选择第n个参数来格式化。由于该函数可以对任意一个对象进行格式化,不同的对象适用的参数也不同,因此我们下面分类来讨论。 
阳光岛主
2019/02/19
9.4K0
Java String.format 方法使用介绍
少用 string.Format
如果你使用的是 C# 6.0 及其以上版本的话我建议你使用新增的 内插字符串 这个功能。这个功能可以更好的帮助开发人员设置字符串格式。下面我们就来看一下为什么要少用 string.Format 而要多用内插字符串,以及内插字符串的优缺点。 String.Format 在 C# 6.0 以前我们会经常用到这个,优点在这里我就不一一阐述了,这里我们主要说一下它的缺点。
喵叔
2020/09/08
1.1K0
高度不固定的图片、多行文字的水平垂直居中
想必写css的都知道如何让单行文字在高度固定的容器内垂直居中,但是您知道或者想过让行数不固定的文字在高度固定的容器内垂直居中呢?本文将会告诉你如何实现多行文字的垂直居中显示。
javascript.shop
2019/09/04
3K0
高度不固定的图片、多行文字的水平垂直居中
Ruby vs. Python: 多行字符串的差异
在《你真的知道Python的字符串是什么吗?》里,我们比较了 Python 多行字符串与Java的区别。有小伙伴说这只是语法的区别,他觉得并不重要。真是不重要吗?
Python猫
2019/04/10
1.2K0
Ruby vs. Python: 多行字符串的差异
iOS lable多行取每行字符串
最近项目需要从lable的中去每行添加换行符,在网上找了一些资料,总结了一下怎么处理这个问题。
菜菜不吃蔡
2018/08/03
1.2K0
python多行注释和跨行字符串
3》三个单引号(或三个双引号)也可以表示跨行字符串,如: >>> s=''' ... hello ... python ... ''' >>> s '\nhello\npython\n'
py3study
2020/01/07
2.7K0

相似问题

如何使用String.format向现有字符串添加5个加号?

47

带加号的Kotlin多行字符串声明

20

在多行代码中编写string.format

50

String.Format还是不?

80

String.Format不工作

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文