Cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong JavaScript
Hàm sẽ trả về giá trị mới nếu việc loại bỏ subStr khỏi chuỗi thành công, nếu không, nó sẽ trả về -1 trong mọi trường hợp Show
Ví dụ - const str = 'drsfgdrrtdr'; console.log(str.removeStr('dr', 3)); Sản lượng dự kiến - 'drsfgdrrt' Hãy viết mã cho điều này - Ví dụconst str = 'drsfgdrrtdr'; const subStr = 'dr'; const num = 2; removeStr = function(subStr, num){ if(!this.includes(subStr)){ return -1; } let start = 0, end = subStr.length; let occurences = 0; for(; ;end < this.length){ if(this.substring(start, end) === subStr){ occurences++; }; if(occurences === num){ return this.substring(0, start) + this.substring(end, this.length); }; end++; start++; } return -1; } String.prototype.removeStr = removeStr; console.log(str.removeStr(subStr, num)); đầu raĐầu ra cho mã này trong bảng điều khiển sẽ là - drsfgrtdr Hiểu mã -
Cuối cùng, chúng ta thêm thuộc tính removeStr vào String. nguyên mẫu để chúng ta có thể gọi nó là một hàm chuỗi Tôi đang làm việc với mã javascript để tìm lần xuất hiện thứ n của một ký tự trong chuỗi. Sử dụng hàm 'drsfgdrrt'6, chúng tôi có thể nhận được lần xuất hiện đầu tiên của ký tự. Bây giờ thách thức là có được lần xuất hiện thứ n của ký tự. Tôi đã có thể nhận được lần xuất hiện thứ ba thứ hai, v.v. bằng cách sử dụng mã được cung cấp bên dưới
Kết quả được đưa ra dưới đây
Tôi muốn khái quát hóa tập lệnh để tôi có thể tìm thấy lần xuất hiện thứ n của ký tự vì đoạn mã trên yêu cầu chúng tôi lặp lại tập lệnh n lần. Hãy cho tôi biết nếu có một phương pháp tốt hơn hoặc thay thế để làm điều tương tự. Sẽ thật tuyệt nếu chúng ta chỉ đưa ra sự xuất hiện (trong thời gian chạy) để lấy chỉ mục của ký tự đó Thêm một số tiện ích mở rộng hữu ích cho kiểu Chuỗi trong Dart, để tìm xem một chuỗi có chứa chuỗi khác nhiều lần không Gần đây tôi đã gặp sự cố này khi đang làm việc trên Shortcut Keeper, ứng dụng Flutter dành cho máy tính để bàn của tôi Tôi cần tìm cách kiểm tra xem một chuỗi như “Command-K Command-T” có chuỗi con “Command” nhiều lần hay không và nếu có thì chuỗi con thứ hai bắt đầu xuất hiện từ chỉ mục nào Để giải quyết vấn đề này, cuối cùng tôi đã viết một vài phương thức mở rộng đơn giản cho kiểu Chuỗi của Dart, điều này có thể hữu ích cho bất kỳ ai gặp phải vấn đề này vấn đề chungNói cách khác, chúng ta cần tìm 1) Nếu một chuỗi chứa một chuỗi khác ( 'drsfgdrrt'7) nhiều lần và 2) 'drsfgdrrt'8 nơi có thể tìm thấy lần xuất hiện thứ hai này Sau đó, chúng tôi có thể mở rộng điều này hơn nữa để có thể tìm thấy các vị trí xảy ra lần thứ n của 'drsfgdrrt'7 Tất nhiên, chúng ta cũng có thể giải quyết vấn đề này bằng các biểu thức chính quy (thông qua lớp RegExp của Dart), nhưng tôi thích cách dễ đọc hơn được trình bày ở đây Dung dịchTìm sự xuất hiện thứ hai của một chuỗi conTiện ích mở rộng mà tôi đã kết thúc là một tiện ích khá đơn giản extension SecondOccurenceOfSubstring on String { int secondIndexOf(String stringToFind) { if (indexOf(stringToFind) == -1) return -1; return indexOf(stringToFind, indexOf(stringToFind) + 1); } bool hasSecondOccurence(String stringToFind) { return secondIndexOf(stringToFind) != -1; } } Ở đây, chúng tôi tận dụng tham số tùy chọn thứ hai ( const str = 'drsfgdrrtdr'; const subStr = 'dr'; const num = 2; removeStr = function(subStr, num){ if(!this.includes(subStr)){ return -1; } let start = 0, end = subStr.length; let occurences = 0; for(; ;end < this.length){ if(this.substring(start, end) === subStr){ occurences++; }; if(occurences === num){ return this.substring(0, start) + this.substring(end, this.length); }; end++; start++; } return -1; } String.prototype.removeStr = removeStr; console.log(str.removeStr(subStr, num));0) của phương thức const str = 'drsfgdrrtdr'; const subStr = 'dr'; const num = 2; removeStr = function(subStr, num){ if(!this.includes(subStr)){ return -1; } let start = 0, end = subStr.length; let occurences = 0; for(; ;end < this.length){ if(this.substring(start, end) === subStr){ occurences++; }; if(occurences === num){ return this.substring(0, start) + this.substring(end, this.length); }; end++; start++; } return -1; } String.prototype.removeStr = removeStr; console.log(str.removeStr(subStr, num));1 từ thư viện cốt lõi của Dart, để đặt vị trí bắt đầu tìm kiếm chuỗi từ đó. Nếu không tìm thấy chuỗi, chúng tôi trả về -1 thông thường Phương thức String s1 = "Command-K Command-T"; s1.secondIndexOf("Command"); // Returns 10 s1.hasSecondOccurence("Command"); // Returns true s1.secondIndexOf("Control"); // Returns -1 s1.hasSecondOccurence("Control"); // Returns false String s2 = "Give it away give it away give it away now"; s2.secondIndexOf("away"); // Returns 210 là một cách thuận tiện để kiểm tra xem một chuỗi con có xuất hiện nhiều lần trong chuỗi được cung cấp hay không Sau đó chúng ta có thể chỉ cần sử dụng nó như thế này String s1 = "Command-K Command-T"; s1.secondIndexOf("Command"); // Returns 10 s1.hasSecondOccurence("Command"); // Returns true s1.secondIndexOf("Control"); // Returns -1 s1.hasSecondOccurence("Control"); // Returns false String s2 = "Give it away give it away give it away now"; s2.secondIndexOf("away"); // Returns 21 Điều này hoạt động rất tốt, vì vậy chúng tôi có thể tiến thêm một bước và xây dựng tiện ích mở rộng tổng quát hơn, để tìm vị trí của bất kỳ sự xuất hiện nào của chuỗi con trong chuỗi Tìm sự xuất hiện thứ n của một chuỗi conBây giờ, chúng tôi muốn cung cấp một phương thức, chẳng hạn như chúng tôi có thể tìm chỉ mục của lần xuất hiện thứ tư (n = 4) của một chuỗi con trong một chuỗi String s3 = "Give it away give it away give it away give it away give it away now"; s3.nThIndexOf("away", 4); // Returns 47 Trong ví dụ trên, chuỗi con String s1 = "Command-K Command-T"; s1.secondIndexOf("Command"); // Returns 10 s1.hasSecondOccurence("Command"); // Returns true s1.secondIndexOf("Control"); // Returns -1 s1.hasSecondOccurence("Control"); // Returns false String s2 = "Give it away give it away give it away now"; s2.secondIndexOf("away"); // Returns 211 thứ tư có thể được tìm thấy sau 47 ký tự trong chuỗi cung cấp của chúng tôi String s1 = "Command-K Command-T"; s1.secondIndexOf("Command"); // Returns 10 s1.hasSecondOccurence("Command"); // Returns true s1.secondIndexOf("Control"); // Returns -1 s1.hasSecondOccurence("Control"); // Returns false String s2 = "Give it away give it away give it away now"; s2.secondIndexOf("away"); // Returns 212 Chúng ta có thể sử dụng phần mở rộng này để làm điều đó 'drsfgdrrt'2 Một lần nữa, chúng tôi áp dụng chiến lược tương tự như trên, với phương pháp const str = 'drsfgdrrtdr'; const subStr = 'dr'; const num = 2; removeStr = function(subStr, num){ if(!this.includes(subStr)){ return -1; } let start = 0, end = subStr.length; let occurences = 0; for(; ;end < this.length){ if(this.substring(start, end) === subStr){ occurences++; }; if(occurences === num){ return this.substring(0, start) + this.substring(end, this.length); }; end++; start++; } return -1; } String.prototype.removeStr = removeStr; console.log(str.removeStr(subStr, num));1, để tiến gần hơn mỗi lần đến lần xuất hiện thứ n mà chúng tôi muốn. Để giúp hiểu rõ hơn, đây là những gì xảy ra trong phương thức String s1 = "Command-K Command-T"; s1.secondIndexOf("Command"); // Returns 10 s1.hasSecondOccurence("Command"); // Returns true s1.secondIndexOf("Control"); // Returns -1 s1.hasSecondOccurence("Control"); // Returns false String s2 = "Give it away give it away give it away now"; s2.secondIndexOf("away"); // Returns 214 khi chúng ta gọi nó bằng String s1 = "Command-K Command-T"; s1.secondIndexOf("Command"); // Returns 10 s1.hasSecondOccurence("Command"); // Returns true s1.secondIndexOf("Control"); // Returns -1 s1.hasSecondOccurence("Control"); // Returns false String s2 = "Give it away give it away give it away now"; s2.secondIndexOf("away"); // Returns 215 Dưới đây là một số ví dụ khác sử dụng tiện ích mở rộng này 'drsfgdrrt'5 Giờ đây, chúng tôi có thể dễ dàng sử dụng các tiện ích mở rộng chuỗi này ở bất cứ đâu chúng tôi cần loại chức năng này trong mã Dart của mình Làm cách nào để tìm lần xuất hiện thứ hai của một ký tự trong chuỗi Java?Chúng tôi được cung cấp một chuỗi, chẳng hạn như "itiswhatitis" và một chuỗi con, chẳng hạn như "is". Tôi cần tìm chỉ mục của 'i' khi chuỗi "là" xuất hiện lần thứ hai trong chuỗi gốc. Chuỗi. indexOf("is") sẽ trả về 2 trong trường hợp này
Làm cách nào để tìm số lần xuất hiện của một ký tự trong chuỗi trong JavaScript?match() Một trong những giải pháp có thể được cung cấp bởi hàm match(), được sử dụng để tạo tất cả các lần xuất hiện của một chuỗi trong một mảng. Bằng cách đếm kích thước mảng trả về số lần chuỗi con xuất hiện trong một chuỗi.
Làm cách nào để lấy chỉ mục cuối cùng thứ hai của chuỗi trong JavaScript?Để lấy hai ký tự cuối cùng của một chuỗi trong JavaScript, gọi phương thức slice() trên chuỗi, chuyển -2 làm đối số. For example, str. slice(-2) returns a new string containing the last two characters of str .
Làm cách nào để lấy ký tự thứ n trong một chuỗi trong JavaScript?Để lấy ký tự thứ n trong Chuỗi, bạn có thể sử dụng phương thức charAt() của Chuỗi . phương thức chatAt() chấp nhận chỉ mục làm đối số và trả về ký tự tại chỉ mục đã cho. Nếu chỉ mục nằm ngoài giới hạn của chuỗi, phương thức charAt() trả về Chuỗi rỗng. |