- D 编程基础
- D 编程 - 主页
- D 编程 - 概述
- D 编程 - 环境
- D 编程 - 基本语法
- D 编程 - 变量
- D 编程 - 数据类型
- D 编程 - 枚举
- D 编程 - 文字
- D 编程 - 运算符
- D 编程 - 循环
- D 编程 - 决策
- D 编程 - 函数
- D 编程 - 字符
- D 编程 - 字符串
- D 编程 - 数组
- D 编程 - 关联数组
- D 编程 - 指针
- D 编程 - 元组
- D 编程 - 结构
- D 编程 - 联合
- D 编程 - 范围
- D 编程 - 别名
- D 编程 - Mixins
- D 编程 - 模块
- D 编程 - 模板
- D 编程 - 不可变
- D 编程 - 文件 I/O
- D 编程 - 并发
- D 编程 - 异常处理
- D 编程 - 合同
- D - 条件编译
- D 编程 - 面向对象
- D 编程 - 类和对象
- D 编程 - 继承
- D 编程 - 重载
- D 编程 - 封装
- D 编程 - 接口
- D 编程 - 抽象类
- D 编程 - 有用的资源
- D 编程 - 快速指南
- D 编程 - 有用的资源
- D 编程 - 讨论
D 编程 - 字符串
D 提供以下两种类型的字符串表示形式 -
- 字符数组
- 核心语言字符串
字符数组
我们可以用两种形式之一来表示字符数组,如下所示。第一种形式直接提供大小,第二种形式使用 dup 方法创建字符串“Goodmorning”的可写副本。
char[9] greeting1 = "Hello all"; char[] greeting2 = "Good morning".dup;
例子
这是使用上述简单字符数组形式的简单示例。
import std.stdio; void main(string[] args) { char[9] greeting1 = "Hello all"; writefln("%s",greeting1); char[] greeting2 = "Good morning".dup; writefln("%s",greeting2); }
当上面的代码被编译并执行时,它会产生如下结果 -
Hello all Good morning
核心语言字符串
字符串内置于 D 的核心语言中。这些字符串可与上面显示的字符数组互操作。以下示例显示了简单的字符串表示形式。
string greeting1 = "Hello all";
例子
import std.stdio; void main(string[] args) { string greeting1 = "Hello all"; writefln("%s",greeting1); char[] greeting2 = "Good morning".dup; writefln("%s",greeting2); string greeting3 = greeting1; writefln("%s",greeting3); }
当上面的代码被编译并执行时,它会产生如下结果 -
Hello all Good morning Hello all
字符串连接
D 编程中的字符串连接使用波浪号(~) 符号。
例子
import std.stdio; void main(string[] args) { string greeting1 = "Good"; char[] greeting2 = "morning".dup; char[] greeting3 = greeting1~" "~greeting2; writefln("%s",greeting3); string greeting4 = "morning"; string greeting5 = greeting1~" "~greeting4; writefln("%s",greeting5); }
当上面的代码被编译并执行时,它会产生如下结果 -
Good morning Good morning
字符串长度
可以借助 length 函数检索字符串的长度(以字节为单位)。
例子
import std.stdio; void main(string[] args) { string greeting1 = "Good"; writefln("Length of string greeting1 is %d",greeting1.length); char[] greeting2 = "morning".dup; writefln("Length of string greeting2 is %d",greeting2.length); }
当上面的代码被编译并执行时,它会产生以下结果 -
Length of string greeting1 is 4 Length of string greeting2 is 7
字符串比较
在 D 编程中,字符串比较非常容易。您可以使用 ==、< 和 > 运算符进行字符串比较。
例子
import std.stdio; void main() { string s1 = "Hello"; string s2 = "World"; string s3 = "World"; if (s2 == s3) { writeln("s2: ",s2," and S3: ",s3, " are the same!"); } if (s1 < s2) { writeln("'", s1, "' comes before '", s2, "'."); } else { writeln("'", s2, "' comes before '", s1, "'."); } }
当上面的代码被编译并执行时,它会产生如下结果 -
s2: World and S3: World are the same! 'Hello' comes before 'World'.
更换琴弦
我们可以使用 string[] 来替换字符串。
例子
import std.stdio; import std.string; void main() { char[] s1 = "hello world ".dup; char[] s2 = "sample".dup; s1[6..12] = s2[0..6]; writeln(s1); }
当上面的代码被编译并执行时,它会产生如下结果 -
hello sample
索引方法
下面的示例解释了用于在字符串中定位子字符串的索引方法,包括indexOf和lastIndexOf。
例子
import std.stdio; import std.string; void main() { char[] s1 = "hello World ".dup; writeln("indexOf of llo in hello is ",std.string.indexOf(s1,"llo")); writeln(s1); writeln("lastIndexOf of O in hello is " ,std.string.lastIndexOf(s1,"O",CaseSensitive.no)); }
当上面的代码被编译并执行时,它会产生以下结果 -
indexOf.of llo in hello is 2 hello World lastIndexOf of O in hello is 7
办理案件
以下示例显示了用于更改案例的方法。
例子
import std.stdio; import std.string; void main() { char[] s1 = "hello World ".dup; writeln("Capitalized string of s1 is ",capitalize(s1)); writeln("Uppercase string of s1 is ",toUpper(s1)); writeln("Lowercase string of s1 is ",toLower(s1)); }
当上面的代码被编译并执行时,它会产生以下结果 -
Capitalized string of s1 is Hello world Uppercase string of s1 is HELLO WORLD Lowercase string of s1 is hello world
限制字符
以下示例显示了字符串中的重新字符串字符。
例子
import std.stdio; import std.string; void main() { string s = "H123Hello1"; string result = munch(s, "0123456789H"); writeln("Restrict trailing characters:",result); result = squeeze(s, "0123456789H"); writeln("Restrict leading characters:",result); s = " Hello World "; writeln("Stripping leading and trailing whitespace:",strip(s)); }
当上面的代码被编译并执行时,它会产生以下结果 -
Restrict trailing characters:H123H Restrict leading characters:ello1 Stripping leading and trailing whitespace:Hello World