如何在TypeScript中获得子串
字符串包含各种字符,而子串是字符串的一部分。我们可以通过两种方式从字符串中获得子串。第一种是使用子串的起始和结束位置,第二种是使用子串的起始位置和长度。
在本教程中,我们将学习TypeScript中从字符串中获取子串的两种方法。
使用起始位置和结束位置获取子串
在TypeScript中,字符串的索引是从零开始的。所以,如果我们有一个基于零的子串的开始和结束位置,我们就可以从特定的字符串中获得子串。
语法
用户可以按照下面的语法从特定的字符串中使用开始和结束的位置来获得子串。
get_sub_string(start, end): string {
let resultantString = "";
for (let i = 0; i < this.string.length; i++) {
if (i >= start && i <= end) {
resultantString += this.string[i];
}
}
return resultantString;
}
算法
- 第1步 – 定义get_sub_string()方法,它获取子串的起始和结束索引并返回字符串。
-
第2步 – 创建字符串类型的 resultantString 变量来存储子串。
-
第3步 – 使用for循环来迭代字符串,我们需要得到子串。
-
第4步 – 在for循环中,检查索引是否在包括开始和结束之间,然后将该位置的字符追加到 resultantString变量中。
-
第5步 – 一旦for循环的迭代完成,返回 resultantString,也就是所需的子串。
示例
在下面的例子中,我们创建了stringClass类,它包含了字符串成员。同时,我们根据上述语法和算法实现了get_sub_string()方法。
之后,我们创建了stringClass的对象,并通过传递各种起始和结束位置作为参数,调用了get_sub_sting()方法。
// Creating a class named stringClass
class stringClass {
// string memeber
string: string;
// constructor to initialize the string member
constructor(str: string) {
this.string = str;
}
// method to get substring, which takes the start and end property
get_sub_string(start: number, end: number): string {
// defining the resultantString variable to store substring
let resultantString = "";
for (let i = 0; i < this.string.length; i++) {
// if index is between start, and end, include the character of that position to resultantString
if (i >= start && i <= end) {
resultantString += this.string[i];
}
}
// return the substring
return resultantString;
}
}
let str1: stringClass = new stringClass("TutorialsPoint");
console.log(
"The substring of TutorialsPoint starting from 2 to 5 is " +
str1.get_sub_string(2, 5)
);
console.log(
"The substring of TutorialsPoint starting from 0 to 7 is " +
str1.get_sub_string(0, 7)
);
// Creating a class named stringClass
var stringClass = /** @class */ (function () {
// constructor to initialize the string member
function stringClass(str) {
this.string = str;
}
// method to get substring, which takes the start and end property
stringClass.prototype.get_sub_string = function (start, end) {
// defining the resultantString variable to store substring
var resultantString = "";
for (var i = 0; i < this.string.length; i++) {
// if index is between start, and end, include the character of that position to resultantString
if (i >= start && i <= end) {
resultantString += this.string[i];
}
}
// return the substring
return resultantString;
};
return stringClass;
}());
var str1 = new stringClass("TutorialsPoint");
console.log("The substring of TutorialsPoint starting from 2 to 5 is " +
str1.get_sub_string(2, 5));
console.log("The substring of TutorialsPoint starting from 0 to 7 is " +
str1.get_sub_string(0, 7));
输出
上述代码将产生以下输出 —
The substring of TutorialsPoint starting from 2 to 5 is tori
The substring of TutorialsPoint starting from 0 to 7 is Tutorial
使用substring()方法来获取子串
我们可以使用TypeScript中字符串类的substring()方法,而不是从头开始编写一个函数来使用起始和结束的位置获得子串。它也可以像上面的例子那样工作,并返回子串。
语法
用户可以按照下面的语法来使用TypeScript中的substring()方法。
let str: string = "Hello";
let subString: string = str.substring(start,[end]);
参数
- start – 这是一个必要的参数,代表我们需要获取子串的起始位置。
-
end – 它是一个可选参数,直到我们得到子串。它排除了结束位置的字符。
返回值
在这个例子中,我们定义了名为sampleString的字符串变量。同时,我们使用了substring()方法,将samleString作为一个参考。此外,我们为substring()方法传递了不同的开始和结束参数值,用户可以观察输出结果。
示例
let sampleString: string = "Welcome";
let subString: string = sampleString.substring(0, 4);
console.log("The substring from 0 to 4 is " + subString);
// using substring() method without passing end parameter
subString = sampleString.substring(2);
console.log("The substring from 2 to end is " + subString);
subString = sampleString.substring(-2, 5);
console.log("The substring from -2 to 5 is " + subString);
subString = sampleString.substring(-2, -5);
console.log("The substring from -2 to -5 is " + subString);
subString = sampleString.substring(-5, -2);
console.log("The substring from -5 to -2 is " + subString);
var sampleString = "Welcome";
var subString = sampleString.substring(0, 4);
console.log("The substring from 0 to 4 is " + subString);
// using substring() method without passing end parameter
subString = sampleString.substring(2);
console.log("The substring from 2 to end is " + subString);
subString = sampleString.substring(-2, 5);
console.log("The substring from -2 to 5 is " + subString);
subString = sampleString.substring(-2, -5);
console.log("The substring from -2 to -5 is " + subString);
subString = sampleString.substring(-5, -2);
console.log("The substring from -5 to -2 is " + subString);
输出
上述代码将产生以下输出 —
The substring from 0 to 4 is Welc
The substring from 2 to end is lcome
The substring from -2 to 5 is Welco
The substring from -2 to -5 is
The substring from -5 to -2 is
在上面的输出中,用户可以观察到,如果我们把两个负值都作为参数传递,substring()方法会返回一个空字符串。如果我们只传递开始的负值,它会从第0个索引开始发送子串。另外,如果我们不传递结束参数,它将返回从开始到字符串长度的子串。
使用substr()方法来获取子串
在TypeScript中,substr()方法也是返回特定字符串中的子串,它与字符串类的substring()方法几乎一样。substr()和substring()方法的基本区别在于它们所取的参数值。substring()将结束位置作为第二个参数,而substr()则将子串的长度作为第二个参数。
语法
在下面的语法中,我们使用了substr()方法。
let str2: string = "Hi there!";
let substring: stirng = str2.substr(start, [len])
参数
- start – 它是子串的一个基于零的起始位置。
-
len – 这是一个可选的参数,指的是子串的长度。
返回值
substr()方法返回从开始和长度为len的子串。如果我们没有传递len参数,它将返回从开始到结束的子串。
示例
在这个例子中,我们使用了不同参数值的substr()方法。用户可以观察到输出结果以及它是如何在不同的start和len参数值下返回子串的。
let demoStr: string = "Shubham";
let substring: string = demoStr.substr(1,3);
console.log("The substring of length 3 starting from 1st index is " + substring);
// substr() method without an optional parameter
substring = demoStr.substr(3);
console.log("The substring starting from 3rd index is " + substring);
var demoStr = "Shubham";
var substring = demoStr.substr(1, 3);
console.log("The substring of length 3 starting from 1st index is " + substring);
// substr() method without an optional parameter
substring = demoStr.substr(3);
console.log("The substring starting from 3rd index is " + substring);
输出
上述代码将产生以下输出 —
The substring of length 3 starting from 1st index is hub
The substring starting from 3rd index is bham