A-level 计算机/AQA/试卷 1/编程基础/字符串处理
非常流行的考试问题涉及字符串操作。这些简单的函数将帮助您完成此任务。
此函数用于查找传递给它的任何字符串的长度,包括所有字符,包括空格。在 Visual Basic 中,要查找字符串的长度,我们使用 Len("some string")
函数,该函数返回传递给它的字符串的整数长度
someText = "Gary had a little lamb"
Console.writeline(Len(someText))
22
此函数允许我们查找给定字符串中项目的的位置,并返回该位置的位置。在 Visual Basic 中,这是通过以下命令执行的:InStr([string], [item])
例如,我们可能想通过查找句号来查找句子的结尾位置
someText = "Gary had a little lamb. His fleece was white as snow."
Console.writeline(InStr(someText,"."))
23
我们也可以使用此命令在字符串中搜索字符串。例如,如果我们要查找句子是否包含某个名称
someText = "Gary had a little lamb. Dave's fleece was white as snow."
Console.writeline(InStr(someText,"Dave"))
25
如果搜索项不包含在字符串中,它将返回 0
someText = "Gary had a little lamb. Dave's fleece was white as snow."
Console.writeline(InStr(someText,"Julie"))
0
此函数允许您从字符串中剪切项目并返回子字符串。Visual Basic 使用以下命令:[string].Substring([startPosition],[lengthOfReturnString])
。例如,我们可能想从给定的固定电话号码中查找本地号码。我们必须忽略区号
phone = "(01234)567890"
local = phone.Substring(7, 6)
console.writeline(local)
567890
此函数允许您将字符串粘贴在一起(连接),以便您可以开始使用变量构建字符串。Visual Basic 使用以下命令:[stringA & stringB]
例如,我们可能在变量 dim name as string
中存储了用户的姓名,以及我们想给予他们的问候
name = "Charles"
console.writeline("Hello " & name & ". How are you today?")
您好,查尔斯。今天过得怎么样?
当您声明变量时,您会为它提供一个数据类型。此数据类型限制了您可以放入变量的值。例如
dim age as integer
- 将允许:
age = 34
- 将不允许:
age = "cabbages"
这似乎很有意义,但当您尝试将实数放入整数中时会发生什么
dim age as integer
age = 34.3
console.writeline(age)
34
这似乎没问题,但在其他语言中我们可能会遇到麻烦。要执行此操作,我们必须从一种数据类型转换为另一种数据类型
dim age as decimal
age = 34.3
console.writeline(age)
age = CInt(34.3) 'converts the decimal into an integer
console.writeline(age)
34.3 34
练习:字符串函数 编写一个简短的程序来告诉某人他们名字中有多少个字母(以防他们不知道!),例如 代码输出
输入:弗莱姆林 答案 Dim name As String
console.write("Input: ")
name = console.readline()
console.writeline("Hello " & name & " you have " & Len(name) & " letters in your name.")
有些人愚蠢地将他们的名字和姓氏输入了数据库,写一些代码来显示名字,然后是他们的姓氏 dim fistname as string = "Elizabeth Sheerin"
代码输出
输入:伊丽莎白·希林 答案 Dim name As String = "Elizabeth Sheerin"
Dim firstname, secondname As String
Dim space, textlength As Integer
space = InStr(name, " ")
textlength = Len(name)
firstname = name.Substring(0, space)
secondname = name.Substring(space, textlength - space)
Console.WriteLine("first name is: " & firstname)
Console.WriteLine("second name is: " & secondname)
电话号码已作为字符串输入计算机:(01234)567890 dim phonenum as string = "(01234)567890"
编写一些代码以输出没有括号的号码 代码输出
输入:(01234)567890 答案 Dim phonenum As String = "(01234)567890"
Dim firstbracket, secondbracket As String
Dim textlength, arealength As Integer
firstbracket = InStr(phonenum, "(")
secondbracket = InStr(phonenum, ")")
textlength = Len(phonenum)
arealength = secondbracket - firstbracket
Console.Write(phonenum.Substring(firstbracket, arealength - 1) & phonenum.Substring(secondbracket, textlength - secondbracket))
与上面类似的问题,电话号码目前以非常难以理解的格式存储:01234567890,完全缺少区号。您可以将它们转换为显示前 5 位数字为区号吗? dim phonenum as string = "01234567890"
然后应将其输出为 代码输出
输入:01234567890 答案 Dim phonenum As String = "01234567890"
Console.Write("(" & phonenum.Substring(0, 5) & ")" & phonenum.Substring(6, 5))
Console.ReadLine()
一个回文是一个词、短语或数字,无论从哪个方向读都是一样的。例如 1234321、RACECAR、TOOT 和 NUN。您需要编写一个程序来检查给定的任何输入是否为回文,并让用户知道 代码输出
输入:NUN 答案 Dim name As String
Dim length As Integer
Dim Pal As Boolean = TRUE
console.write("Input: ")
name = console.readline()
length = Len(name)
For x = 0 to (length / 2)
If name.Substring(x, 1) != name.Substring(length - x, 1) then
Pal = FALSE
End If
Next
If Pal then
console.writeline("That is a palindrome!")
Else
console.writeline("That is NOT a palindrome!")
End If
|
扩展:正则表达式 您通常希望检查输入字符串的格式,如果格式不正确,您希望它重新提交。例如,您可能希望某人输入他们最好的朋友的名字,这意味着他们不应该输入任何字母或空格,并且它应该以大写字母开头 代码输出
最好的朋友的名字:Beanie(正确) 为此,我们可以将输入字符串与一些规则匹配,正则表达式或正则表达式,在这种情况下,我们只希望字母表中的字符
拆分规则
另一个例子可能是检查著名作曲家的拼写是否正确 "Handel", "Händel", and "Haendel" 我们可以使用模式
大多数正则表达式工具提供以下操作来构建表达式。 布尔“或” 垂直线分隔备选方案。例如, 分组 括号用于定义运算符的范围和优先级(以及其他用途)。例如, 量化 在标记(如字符)或组后面的量词指定前面元素允许出现的次数。
大多数编程语言都有正则表达式函数。在 VB.NET 中,我们可以使用 Regex 例程使用正则表达式 ' this code enforces the name rule from earlier
Dim name As String
Console.Write("Name of best friend: ")
name = Console.Readline()
' match the string against a regular expression
Dim m As Match = Regex.Match(name, "[A-Z][a-z]+")
If (m.Success) Then
Console.WriteLine("You have input the name correctly")
Else
Console.WriteLine("Incorrect format!")
End If
正则表达式的常见用途是检查您是否输入了正确的电子邮件地址。该规则如下: 您可以在维基百科上找到有关正则表达式的更多信息,您将在 A2 中更详细地学习正则表达式。 |
从整数、实数、日期/时间转换。