
- String são primitivas, mas possuem métodos que estão disponíveis em objetos.
- Sempre que chamamos um método em string, JS converte o primitivo String em objeto String nos bastidores e então está naquele objeto no qual os métodos são chamados. Este processo é chamado de boxe, pois o primitivo String é obtido e colocado dentro de um objeto String agindo como uma caixa, ou seja, ele passa o argumento dentro do método "new String ()" convertendo um primitivo de string em um objeto de string.
Quando a operação é concluída, o objeto é convertido de volta para String primitivo do objeto String nos bastidores.-
Qualquer coisa que é passada para 'new String()' se torna um objeto que pode ser verificado usando o operador typeof.
-
const carro = 'Lamborghini Huracan EVO';
// Semelhança de strings com arrays em JS
carro[0];
carro[car.comprimento-1];
comprimento do carro;
// Do começo
carro.indexOf('o');
carro.indexOf('Huracan');
// Do final
car.lastIndexOf('E');
// index(begin, end) são usados para extrair parte da string que é então passada para slice() como argumento.
carro.slice(car.indexOf('o'));
carro.slice(8);
carro.slice(8,15); // O comprimento da string extraída será (fim-início) conforme mencionado abaixo
// String são primitivas, portanto imutáveis. Sempre use uma estrutura de dados para retornar uma nova string após a operação.
// Extrai até um local específico dentro de um índice.
car.slice(0, car.indexOf(' '));
// Extrai a última palavra.
car.slice(car.lastIndexOf(' ')); // extrai junto com o espaço
car.slice(car.lastIndexOf(' ') 1); // 1 adicionado para excluir o espaço
// Extrai do final usando valores negativos
carro.slice(-7);
carro.slice(1, -1);
carro.slice(0, -1);
function knowYourSeatLocation(assento){
const x = assento.slice(-1);
if(x === 'W'){ console.log("Assento na janela"); }
if(x === 'M'){ console.log("Assento do meio"); }
if(x === 'A'){ console.log("Assento no corredor"); }
}
conheçaSeuSeatLocation('43W');
conheçaSeuSeatLocation('12A');
conheçaSeuSeatLocation('67M');
// Métodos comuns:
carro.toLowerCase();
car.toUpperCase();
carro.trim();
carro.trimStart();
carro.trimEnd();
// Métodos que retornam booleanos: Muito bons para instruções condicionais.
carro.inclui('Lambo');
carro.startsWith('Lam');
car.endsWith('EVO');
// Ao pegar o usuário i/p, converta-o para minúsculas antes de realizar qualquer operação no texto. Isso eliminaria muitas fontes de erros relacionadas a letras maiúsculas e minúsculas.
// Uso: Convertendo a primeira letra para maiúscula o usuário insere o nome em maiúsculas e minúsculas para manter a consistência
// Uso: Validação de e-mail para caracteres, especialmente espaços em branco, caracteres inválidos, etc.
// Substituição de string: (ToBeReplaced, ReplceWith)
// replace() : Um método que diferencia maiúsculas de minúsculas. Métodos imutáveis para programação funcional:
carro.replace(' ','_');
carro.replaceAll(' ','_');
// Usando RegEx: o texto de destino deve ser colocado entre // com sinalizador no final. Texto desejado a ser passado como segundo argumento.
carro.replace(/ini/g,'123456');
// .split(): divide o texto com base na condição, retorna os elementos na forma de um array
// .join(): oposto de .split()
carro.split(''); // como caracteres
carro.split(' '); // como palavras
carro.split('eu'); //baseado em um personagem
// A desestruturação torna tudo mais fácil em comparação ao uso de .slice()
const nome = 'Peter Parker';
const [fNome, lNome] = nome.split(' ');
fNome;
lNome;
// Adicionando saudações ao nome:
const title = ['Sr.', fName, lName.toUpperCase()].join(' ');
título;
// Uso: Primeira letra de um Nome em maiúscula
const capitalizeNome = função(nome){
const nomes = nome.split(' ');
const nomesUpper = [];
for(const n de nomes){
// Método 1 e Método 2 estão listados abaixo em duas linhas. Ambos funcionam.
//namesUpper.push(n[0].toUpperCase() n.slice(1));
nomesUpper.push(n.replace(n[0],n[0].toUpperCase()));
}
console.log(namesUpper.join(' '));
};
capitalizeName('amar akbar anthony amarjeet');
// Preenchendo uma string, ou seja, adicionando certos caracteres até que o comprimento desejado seja alcançado.
// (DesiredLength, ToBePaddedWith)
const mensagem = 'Bem-vindo ao JS';
msg.padStart(20,'x');
msg.padEnd(20,'x');
// Converta um não em sua forma de string usando: String()
// Outra maneira é adicionar um '' a um número, ou seja, quando um operando de um sinal é string, todos os operandos são convertidos em formato string.
// Uso: Mascarando certos números de documentos importantes
const mascaradoId = função(id){
conststr=id'';
const últimoQuatro = str.slice(-4);
retornar lastFour.padStart(str.length, '*');
}
mascaradoId(92837483297492);
mascaradoId('r438t7h4irgrgTAFE');
//repetir(NoOfTimeToBeRepeated): repete o mesmo texto várias vezes
const msgText = 'Chovendo.\n';
msgText.repeat(5);
const TrainsWaiting = function(x){
console.log(`Há ${x} trens esperando na estação ${'?'.repeat(x)} \n`);
}
TrensEsperando(4);
TrensEsperando(16);
TrensEsperando(8);
// Extrai string de um texto longo recebido de uma API com base em algum separador encontrado no texto.
dados const = 'Partida';
const car = 'Lamborghini Huracan EVO';
// Similarity of strings with arrays in JS
car[0];
car[car.length-1];
car.length;
// From begin
car.indexOf('o');
car.indexOf('Huracan');
// From end
car.lastIndexOf('E');
// index(begin, end) are used to extract part of string which are then passed to slice() as argument.
car.slice(car.indexOf('o'));
car.slice(8);
car.slice(8,15); // Extracted string length will be (end-begin) as mentioned below
// String are primitives, hence immutable. Always use a data-structure to return a new string after the operation.
// Extract till a particular location inside an index.
car.slice(0, car.indexOf(' '));
// Extract the last word.
car.slice(car.lastIndexOf(' ')); // extracts along with space
car.slice(car.lastIndexOf(' ') 1); // 1 added to exclude the space
// Extract from the end using negative values
car.slice(-7);
car.slice(1, -1);
car.slice(0, -1);
function knowYourSeatLocation(seat){
const x = seat.slice(-1);
if(x === 'W'){ console.log("Window Seat"); }
if(x === 'M'){ console.log("Middle Seat"); }
if(x === 'A'){ console.log("Aisle Seat"); }
}
knowYourSeatLocation('43W');
knowYourSeatLocation('12A');
knowYourSeatLocation('67M');
// Common Methods:
car.toLowerCase();
car.toUpperCase();
car.trim();
car.trimStart();
car.trimEnd();
// Methods returning boolean: Very good for conditional statements.
car.includes('Lambo');
car.startsWith('Lam');
car.endsWith('EVO');
// On taking user i/p convert it to lowercase before performing any operations on the text. It would eliminate a lot of error sources related to letter-case.
// Usage: Converting first letter to uppercase incase user enters name in mixed case to maintain consistency
// Usage: Email validation for characters esp whitespace, invalid characters etc.
// String replacement: (ToBeReplaced, ReplceWith)
// replace() : A case-sensitive method. Immutable Methods for functional Programming:
car.replace(' ','_');
car.replaceAll(' ','_');
// Using RegEx: Target text has to be enclosed between // with flag at the end. Desired text to be passed as second argument.
car.replace(/ini/g,'123456');
// .split(): split the text based on condition, return the elements in the form of an array
// .join(): opposite of .split()
car.split(''); // as characters
car.split(' '); // as words
car.split('i'); // based on a character
// Destrucutring makes it easier as compared to using .slice()
const name = 'Peter Parker';
const [fName, lName] = name.split(' ');
fName;
lName;
// Adding saluttations to the name:
const title = ['Mr.', fName, lName.toUpperCase()].join(' ');
title;
// Usage: First letter of a Name capitalization
const capitalizeName = function(name){
const names = name.split(' ');
const namesUpper = [];
for(const n of names){
// Method 1 and Method 2 are listed below in two lines. Both work.
// namesUpper.push(n[0].toUpperCase() n.slice(1));
namesUpper.push(n.replace(n[0],n[0].toUpperCase()));
}
console.log(namesUpper.join(' '));
};
capitalizeName('amar akbar anthony amarjeet');
// Padding a string i.e adding certain characters until a desired length is achieved.
// (DesiredLength, ToBePaddedWith)
const msg = 'Welcome to JS';
msg.padStart(20,'x');
msg.padEnd(20,'x');
// Convert a no into its string form by using: String()
// Another way is to add an '' to a number i.e When one operand of a sign is string, all operands are converted into string form.
// Usage: Masking certain numbers of important documents
const maskedId = function(id){
const str = id '';
const lastFour = str.slice(-4);
return lastFour.padStart(str.length, '*');
}
maskedId(92837483297492);
maskedId('r438t7h4irgrgTAFE');
// repeat(NoOfTimeToBeRepeated) : Repeat the same text multiple times
const msgText = 'Raining.\n';
msgText.repeat(5 );
const TrainsWaiting = function(x){
console.log(`There are ${x} trains waiting on the station ${'?'.repeat(x)} \n`);
}
TrainsWaiting(4);
TrainsWaiting(16);
TrainsWaiting(8);
// Extract string from a long text received from an API based on some separator found in text.
const data = 'Departure';