Hướng dẫn how do you replace a single character in a string javascript? - làm thế nào để bạn thay thế một ký tự trong một chuỗi javascript?

Có rất nhiều câu trả lời ở đây và tất cả chúng đều dựa trên hai phương pháp:

  • Phương thức1: Chia chuỗi bằng cách sử dụng hai chuỗi con và nhét ký tự giữa chúng
  • Phương thức2: Chuyển đổi chuỗi thành mảng ký tự, thay thế một thành viên mảng và tham gia nó

Cá nhân, tôi sẽ sử dụng hai phương pháp này trong các trường hợp khác nhau. Hãy để tôi giải thích.

@Fabiophms: Phương pháp của bạn là phương pháp ban đầu tôi đã sử dụng và tôi sợ rằng nó rất tệ trên chuỗi có rất nhiều ký tự. Tuy nhiên, câu hỏi là rất nhiều nhân vật? Tôi đã thử nghiệm nó trên các đoạn "Lorem Ipsum" và phải mất vài mili giây. Sau đó, tôi đã kiểm tra nó trên chuỗi lớn hơn 10 lần - thực sự không có sự khác biệt lớn. HM.

@vsync, @Cory Mawhorter: Nhận xét của bạn không rõ ràng; Tuy nhiên, một lần nữa, một chuỗi lớn là gì? Tôi đồng ý rằng đối với hiệu suất 32 ... 100kB sẽ tốt hơn và người ta nên sử dụng biến thể con cho hoạt động thay thế ký tự này.

Nhưng điều gì sẽ xảy ra nếu tôi phải thực hiện khá nhiều thay thế?

Tôi cần phải thực hiện các bài kiểm tra của riêng mình để chứng minh những gì nhanh hơn trong trường hợp đó. Giả sử chúng ta có một thuật toán sẽ thao tác một chuỗi tương đối ngắn bao gồm 1000 ký tự. Chúng tôi hy vọng rằng trung bình mỗi ký tự trong chuỗi đó sẽ được thay thế ~ 100 lần. Vì vậy, mã để kiểm tra một cái gì đó như thế này là:

var str = "... {A LARGE STRING HERE} ...";

for(var i=0; i<100000; i++)
{
  var n = '' + Math.floor(Math.random() * 10);
  var p = Math.floor(Math.random() * 1000);
  // replace character *n* on position *p*
}

Tôi đã tạo ra một câu đố cho việc này, và nó ở đây. Có hai thử nghiệm, Test1 (Subring) và Test2 (chuyển đổi mảng).

Results:

  • Test1: 195ms
  • TEST2: 6ms

Có vẻ như chuyển đổi mảng đánh bại chuỗi con theo 2 bậc độ lớn! Vậy - cái quái gì đã xảy ra ở đây ???

Điều thực sự xảy ra là tất cả các hoạt động trong test2 được thực hiện trên chính mảng, sử dụng biểu thức gán như strarr2[p] = n. Nhiệm vụ thực sự nhanh so với chất nền trên một chuỗi lớn, và rõ ràng rằng nó sẽ giành chiến thắng.

Vì vậy, đó là tất cả về việc chọn công cụ phù hợp cho công việc. Lại.

Mục lục #

  1. Thay thế một ký tự ở một chỉ mục cụ thể trong một chuỗi
  2. Thay thế nhiều ký tự ở một chỉ mục cụ thể

Thay thế một ký tự ở một chỉ mục cụ thể trong chuỗi #

Để thay thế một ký tự ở một chỉ mục cụ thể trong một chuỗi:

  1. Gọi phương thức substring() hai lần để lấy chuỗi thành hai mảnh, không bao gồm ký tự được thay thế.
  2. Sử dụng toán tử Plus + để thêm ký tự thay thế giữa hai chuỗi.

Copied!

const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box

Các tham số chúng ta chuyển sang phương thức chuỗi.SubString là:

  1. Bắt đầu chỉ mục - Chỉ mục của ký tự đầu tiên được đưa vào chuỗi được trả về - the index of the first character to be included in the returned string
  2. Chỉ mục kết thúc - đi lên, nhưng không bao gồm chỉ mục này - go up to, but not including this index

Phương thức substring không thay đổi chuỗi gốc, thay vào đó, nó trả về một chuỗi mới chứa một phần của chuỗi gốc.

Trong ví dụ, chúng tôi thay thế ký tự tại INDEX 2, đó là một b bằng

Copied!

const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box
0.

Nếu bạn cần thay thế nhiều ký tự bắt đầu ở một chỉ mục cụ thể, hãy cuộn xuống tiêu đề tiếp theo.

Một cách dễ dàng để suy nghĩ về điều này là:

  1. Cuộc gọi đầu tiên đến phương thức substring trả về một chuỗi bắt đầu từ chỉ mục

    Copied!

    const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box
    2 của chuỗi gốc và đi lên, nhưng không bao gồm chỉ mục của ký tự chúng tôi muốn thay thế

  2. Sau đó chúng tôi thêm ký tự thay thế vào chuỗi

  3. Bước cuối cùng là thêm phần còn lại của chuỗi. Tuy nhiên, chúng tôi không muốn bao gồm nhân vật mà chúng tôi đã thay thế, vì vậy chúng tôi tăng chỉ mục bắt đầu thêm 1.start index by 1.

Cách tiếp cận này cũng hoạt động nếu bạn cần thay thế một ký tự duy nhất bằng nhiều ký tự, bắt đầu từ một chỉ mục cụ thể.

Copied!

const str = 'This is a long string'; const index = 8; const replacement = 'a very'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); // 👇️ This is a very long string console.log(replaced);

Chúng tôi sử dụng phương pháp tương tự chính xác như từ đoạn mã đầu tiên, tuy nhiên lần này chúng tôi thay thế một ký tự duy nhất -

Copied!

const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box
3 bằng nhiều ký tự -

Copied!

const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box
4.

Thay thế nhiều ký tự ở một chỉ mục cụ thể #

Để thay thế nhiều ký tự ở một chỉ mục cụ thể, hãy sử dụng độ dài của chuỗi thay thế để xác định chỉ số bắt đầu của cuộc gọi thứ hai đến substring().

Copied!

const str = 'the best'; const index = 4; const replacement = 'test'; const replaced = str.substring(0, index) + replacement + str.substring(index + replacement.length); console.log(replaced); // 👉️ the test

Trong ví dụ này, chúng tôi thay thế từ

Copied!

const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box
6 bằng từ

Copied!

const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box
7.

Đây là những gì chúng tôi đã làm để đạt được điều này:

  1. Trong cuộc gọi đầu tiên đến phương thức substring, chúng tôi nhận được một phần của chuỗi ban đầu từ INDEX

    Copied!

    const str = 'bob'; const index = 2; const replacement = 'x'; const replaced = str.substring(0, index) + replacement + str.substring(index + 1); console.log(replaced); // 👉️ box
    2 cho đến nhưng không bao gồm chỉ mục của các ký tự được thay thế.
  2. Chúng tôi đã thêm chuỗi thay thế.
  3. Chúng tôi đã sử dụng độ dài của chuỗi thay thế để xác định tại chỉ mục nào cuộc gọi thứ hai của chúng tôi đến phương thức substring sẽ bắt đầu.

Điều này có nghĩa là chúng tôi đang loại trừ chính xác nhiều ký tự từ chuỗi gốc, như chúng tôi cung cấp trong chuỗi thay thế của chúng tôi.

Đọc thêm #

  • Thay thế nhiều ký tự trong chuỗi bằng cách sử dụng JavaScript
  • Thay thế lần xuất hiện đầu tiên của ký tự trong chuỗi trong JS
  • Thay thế lần xuất hiện cuối cùng của ký tự trong chuỗi trong JavaScript
  • Xóa các ký tự đặc biệt khỏi chuỗi trong JavaScript
  • Thay thế n ký tự đầu tiên trong một chuỗi trong javascript
  • Thay thế ký tự đầu tiên trong một chuỗi trong JavaScript
  • Thay thế ký tự cuối cùng trong một chuỗi trong JavaScript
  • Kiểm tra xem chuỗi chỉ chứa các chữ cái và khoảng cách trong js
  • Xóa tất cả các ký tự không phải là vô hiệu khỏi chuỗi trong JS
  • Kiểm tra xem chuỗi có chứa các ký tự đặc biệt trong JavaScript không

Làm thế nào để bạn thay thế một ký tự cụ thể trong một chuỗi?

Phương thức thay thế Java () được sử dụng để thay thế tất cả các lần xuất hiện của một ký tự hoặc chuỗi con cụ thể trong một chuỗi bằng một ký tự hoặc chuỗi con khác. is used to replace all occurrences of a particular character or substring in a string with another character or substring.

Làm thế nào để bạn chỉ thay thế một ký tự trong một chuỗi trong Java?

Chuỗi là bất biến trong Java.Bạn không thể thay đổi chúng.Bạn cần tạo một chuỗi mới với ký tự được thay thế.create a new string with the character replaced.

Thay thế () trong javascript là gì?

Phương thức thay thế () trả về một chuỗi mới với một, một số hoặc tất cả các kết quả của một mẫu được thay thế bằng cách thay thế.Mẫu có thể là một chuỗi hoặc một regexp và thay thế có thể là một chuỗi hoặc một hàm được gọi cho mỗi trận đấu.Nếu mẫu là một chuỗi, chỉ có sự xuất hiện đầu tiên sẽ được thay thế.returns a new string with one, some, or all matches of a pattern replaced by a replacement . The pattern can be a string or a RegExp , and the replacement can be a string or a function called for each match. If pattern is a string, only the first occurrence will be replaced.

Làm thế nào để bạn thay thế một phần tử trong một chuỗi?

Cú pháp thay thế ()..
Cú pháp: String.replace (cũ, mới, đếm).
Parameters:.
Giá trị trả về: Nó trả về một bản sao của chuỗi trong đó tất cả các lần xuất hiện của một chuỗi con được thay thế bằng một chuỗi con khác ..