Вернуть строку с заменой каждого элемента [0] на элемент [1] в строке

Java имеет пул строк, в котором Java управляет распределением памяти для объектов String. См. String Pools в Java

Когда вы проверяете (сравниваете) два объекта с помощью оператора ==, он сравнивает равенство адресов в пуле строк. Если два объекта String имеют одинаковые адреса, то он возвращает true, в противном случае false. Но если вы хотите сравнить содержимое двух объектов String, вы должны переопределить метод equals.

equals - фактически метод класса Object, но он переопределяется в класс String и дается новое определение, которое сравнивает содержимое объекта.

Example:
    stringObjectOne.equals(stringObjectTwo);

Но помните, что это относится к случаю String. Если вы хотите сравнить регистр без учета регистра, вы должны пойти для метода equalsIgnoreCase класса String.

Давайте посмотрим:

String one   = "HELLO"; 
String two   = "HELLO"; 
String three = new String("HELLO"); 
String four  = "hello"; 

one == two;   // TRUE
one == three; // FALSE
one == four;  // FALSE

one.equals(two);            // TRUE
one.equals(three);          // TRUE
one.equals(four);           // FALSE
one.equalsIgnoreCase(four); // TRUE

0
задан Th1 9 March 2019 в 23:45
поделиться

3 ответа

Эта альтернатива разбивает строку на пробел.

Затем, используя массив, функция map преобразует строки в желаемый результат.

let swap = s =>
  s.split(/\s/).map(s => {
    let split = s.split(''),
      letters = [];

    if (split.length > 1) { // This is for string with only one char
      // Get the two chars -> He
      // reverse them -> eH
      letters = split.splice(0, 2).reverse();
    }

    return letters.join('') + split.join('');
  }).join(' ');

console.log(swap("Hello guys"));
console.log(swap("Ele From S"));

0
ответ дан Ele 9 March 2019 в 23:45
поделиться

Один из вариантов - использовать регулярное выражение - захватить один символ слова в начале слова, за которым следует другой захваченный символ слова, и заменить его на те замененные группы захвата:

[ 110]

0
ответ дан CertainPerformance 9 March 2019 в 23:45
поделиться

Вы также можете сделать это, используя split и join (без каких-либо регулярных выражений):

const tex = `Hello guys`;
const strs = tex.split(' ')
const changed = strs.map(str => {
  const s = str.split('')
  const s1 = s[1]
  const s0 = s[0]
  s[0] = s1
  s[1] = s0
  return s.join('')
})

console.log(changed.join(' '))

0
ответ дан jsdeveloper 9 March 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: