如何在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)
);

编译后,它将生成以下JavaScript代码:

// 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);

编译后,它将生成以下JavaScript代码:

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()方法返回从start开始长度为len的子字符串。如果我们不传递len参数,它将返回从start到结束的子字符串。

示例

在这个例子中,我们使用了不同参数值的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);

编译后,它将生成以下JavaScript代码:

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

更新于:2023年1月3日

553 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告