문자열의 마지막 문자를 얻는 방법?


526

문자열의 마지막 문자를 얻는 방법 :

"linto.yahoo.com."

이 문자열의 마지막 문자는 "."

이것을 어떻게 찾을 수 있습니까?


답변 가장 적합하고 먼저 표시되어야하므로이 답변 을 수락 할 수 있습니까 ?
Sharku

답변:


995

우아하고 짧은 대안은 String.prototype.slice방법입니다.

그냥 :

str.slice(-1);

음의 시작 인덱스에서 문자열 조각 length+indexlength있는 인덱스 -1, 마지막 문자가 추출된다 :

"abc".slice(-1); // "c";

9
참고 사항 : 배열에도 slice()방법이 있습니다. -기능은 개념적으로 비슷합니다 (부분 사본) -------- (코드를 읽고 참조하는 경우 .slice())
Peter Ajtai

1
"UTF-8 문자열"은 무엇을 의미합니까? 문구는 의미가 없습니다. 그러나 JavaScript 문자열은 재미있는 짐승 그 자체입니다. 부호없는 16 비트 정수 값의 시퀀스입니다. 문자열의 의도가 문자를 저장하려는 경우 위의 코드는 마지막 16 비트 값을 반환합니다. 이는 대리 쌍의 두 번째 부분 인 경우에는 좋지 않습니다. 그러나 "UTF-8 문자열"이란 정확히 무엇을 의미합니까? UTF-8은 바이트 배열이있는 경우 의미가있는 인코딩 체계이지만 문자열과 관련해서는 전혀 의미가 없습니다. 그냥 궁금해서
Ray Toal

4
이것이 질문에 대한 답변이 아니기 때문에 공감되었습니다. 사용자가 캐릭터를 제거하기를 원한다고 가정하지만 마지막 캐릭터를 캡처하고 캐릭터를 기반으로 응답해야하는 경우 어떻게해야합니까? str.charAt () 답변이 정답입니다.
gregtczap

6
@Egg, 당신은 내 예를 시도하지 않은 것 같다 str.slice(-1)사용한 것처럼, (영업 필요에 따라) 실제로 문자열의 마지막 문자가 나올까요 str.charAt(str.length - 1),보십시오 "abc".slice(-1). 여기 String.prototype.slice에 음수 인덱스 의 사용법을 보여주었습니다 . 원래 문자열 str.slice(-n)의 마지막 n문자를 새 문자열 값으로 가져옵니다 . 추가 정보 : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
CMS

9
@CMS 당신이 맞습니다, 당신의 방법은 실제로 문자열의 마지막 문자를 자르지 않고 잡습니다. 멋진 우아한 방법도 있습니다. 어떤 이유로 나는 그 문자를 자르고 잘린 문자열을 반환 할 것이라고 생각했습니다. 미안, 나는 그것을 먼저 시도하지 않은 바보 같은 느낌.
gregtczap

97

사용 charAt:

charAt () 메소드는 문자열에서 지정된 인덱스의 문자를 리턴합니다.

이 메소드를 length문자열 의 특성 과 함께 사용하여 해당 문자열의 마지막 문자를 얻을 수 있습니다.
예를 들면 다음과 같습니다.

const myString = "linto.yahoo.com.";
const stringLength = myString.length; // this will be 16
console.log('lastChar: ', myString.charAt(stringLength - 1)); // this will be the string


64
str.charAt(str.length - 1)

일부 브라우저에서는 비표준 확장으로 다음을 단축 할 수 있습니다.

str[str.length - 1];

50

다른 방법을 사용하지만 다른 성능으로이를 달성 할 수 있습니다.

1. 대괄호 표기법 사용 :

var str = "Test"; var lastLetter = str[str.length - 1];

그러나 대괄호는 사용하지 않는 것이 좋습니다. 여기 에서 이유를 확인 하십시오

2. 문자 [색인] :

var lastLetter = str.charAt(str.length - 1)

이것은 무엇보다 읽기 쉽고 빠릅니다. 가장 권장되는 방법입니다.

3. 부분 문자열 :

str.substring(str.length - 1);

4. 슬라이스 :

str.slice(-1);

하위 문자열보다 약간 빠릅니다.

여기 에서 성능을 확인할 수 있습니다

ES6 사용시 :

당신이 사용할 수있는 str.endsWith("t");

그러나 IE에서는 지원되지 않습니다. 엔드에 대한 자세한 내용은 여기를 참조 하십시오


2
현재 기계에서 성능을 압박 할 필요가 없습니다. 가장 간결한 솔루션을 사용하십시오. 내 투표는str.slice(-1);
avalanche1 1

1
나는 endsWith여기에 얼마나 적합한 지 잘 모르겠습니다 . 그것은 완전히 다른 것을합니다.
John Montgomery

38

substr 을 매개 변수 -1 과 함께 사용하십시오 .

"linto.yahoo.com.". substr (-1);

"."와 같습니다.

노트 :

문자열 끝에서 문자를 추출하려면 음수 시작 번호를 사용하십시오 (IE 8 및 이전 버전에서는 작동하지 않음).


3
이 것이 slice ()만큼 짧아 보이는 것 같습니다.
Stramin

12

그것을하는 쉬운 방법은 이것을 사용하는 것입니다 :)

var word = "waffle"
word.endsWith("e")


1
ES6에 대한 훌륭한 추가 기능이지만 지원 해야하는 경우 IE에서는 작동하지 않지만 polyfill 될 수 있습니다 .
sanjsanj

이것이 어떻게 질문에 대답하는지 알지 못합니다. 문자열의 마지막 문자를 얻는 것이 특정 문자와 일치하는지 확인하는 것과는 완전히 다릅니다.
John Montgomery

8

다음과 같이 마지막 문자를 얻을 수 있습니다.

var lastChar=yourString.charAt(yourString.length-1);

4

JavaScript charAt 함수를 사용하여 지정된 0 색인 위치에서 문자를 가져옵니다. 길이 를 사용 하여 문자열의 길이 를 찾으십시오. 길이가 1이되도록 마지막 문자를 원합니다. 예 :

var word = "linto.yahoo.com.";
var last = word.charAt(word.length - 1);
alert('The last character is:' + last);

4
var firstName = "Ada";
var lastLetterOfFirstName = firstName[firstName.length - 1];

이 코드 스 니펫은 문제를 해결할 수 있지만 설명을 포함하면 게시물의 품질을 향상시키는 데 실제로 도움이됩니다. 앞으로 독자에게 질문에 대한 답변을 제공하고 있으며 해당 사람들이 귀하의 코드 제안 이유를 모를 수도 있습니다. 설명 주석으로 코드를 복잡하게 만들지 마십시오. 이렇게하면 코드와 설명의 가독성이 떨어집니다!
kayess

0

이 간단한 ES6 방법을 사용할 수 있습니다

const lastChar = (str) => str.split('').reverse().join(',').replace(',', '')[str.length === str.length + 1 ? 1 : 0];


// example
console.log(lastChar("linto.yahoo.com."));

이것은 모든 브라우저에서 작동합니다.


0

다음을 사용할 수 있습니다. 이 마지막 문자의 경우 과잉이지만 하위 문자열의 경우 유용합니다.

var word = "linto.yahoo.com.";
var last = ".com.";
if (word.substr(-(last.length)) == last)
alert("its a match");

-1
>Try this...     

console.log("linto.yahoo.com.".charAt("linto.yahoo.com.".length-1));
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.