program tip

모든 문자열에서 마지막 세 문자 가져 오기-Java

radiobox 2021. 1. 9. 09:42
반응형

모든 문자열에서 마지막 세 문자 가져 오기-Java


문자열의 마지막 세 자리를 가져 와서 다른 문자열 변수로 저장하려고합니다. 내 생각 과정에 힘든 시간을 보내고 있습니다.

String word = "onetwotwoone"
int length = word.length();
String new_word = id.getChars(length-3, length, buffer, index);

버퍼 또는 인덱스와 관련하여 getChars 메서드를 사용하는 방법을 모르겠습니다. 이클립스는 저에게 그것들을 가지고 있습니다. 어떤 제안?


왜 안돼 String substr = word.substring(word.length() - 3)?

최신 정보

String전화하기 전에이 (가) 3 자 이상 인지 확인하십시오 substring().

if (word.length() == 3) {
  return word;
} else if (word.length() > 3) {
  return word.substring(word.length() - 3);
} else {
  // whatever is appropriate in this case
  throw new IllegalArgumentException("word has less than 3 characters!");
}

Apache Commons Lang의 클래스에서 right메서드를 고려할 것입니다 StringUtils. http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html#right(java.lang.String,% 20int)

그것은 안전하다. 당신은받지 않습니다 NullPointerExceptionStringIndexOutOfBoundsException.

사용 예 :

StringUtils.right("abcdef", 3)

위의 링크에서 더 많은 예제를 찾을 수 있습니다.


다음은 정규식을 사용하여 작업을 수행하는 간결한 코드입니다.

String last3 = str.replaceAll(".*?(.?.?.?)?$", "$1");

이 코드는 최대 3 개를 반환 합니다 . 3 개 미만이면 문자열 만 반환합니다.

다음은 한 줄에 정규식없이 안전하게 수행하는 방법입니다 .

String last3 = str == null || str.length() < 3 ? 
    str : str.substring(str.length() - 3);

"안전하게"란 문자열이 null이거나 3 자 미만인 경우 예외를 throw하지 않고 다른 모든 답변이 "안전하지 않음"을 의미합니다.


위의 코드는 좀 더 장황하지만 읽기 쉬운 형식을 선호하는 경우이 코드와 동일합니다.

String last3;
if (str == null || str.length() < 3) {
    last3 = str;
} else {
    last3 = str.substring(str.length() - 3);
}

public String getLastThree(String myString) {
    if(myString.length() > 3)
        return myString.substring(myString.length()-3);
    else
        return myString;
}

당신이 원하는 경우 String마지막 세 문자로 구성, 당신은 사용할 수 있습니다 substring(int):

String new_word = word.substring(word.length() - 3);

실제로 문자 배열로 원하면 다음과 같이 작성해야합니다.

char[] buffer = new char[3];
int length = word.length();
word.getChars(length - 3, length, buffer, 0);

The first two arguments to getChars denote the portion of the string you want to extract. The third argument is the array into which that portion will be put. And the last argument gives the position in the buffer where the operation starts.

If the string has less than three characters, you'll get an exception in either of the above cases, so you might want to check for that.


String newString = originalString.substring(originalString.length()-3);


This method would be helpful :

String rightPart(String text,int length)
{
    if (text.length()<length) return text;
    String raw = "";
    for (int i = 1; i <= length; i++) {
        raw += text.toCharArray()[text.length()-i];
    }
    return new StringBuilder(raw).reverse().toString();
}

The getChars string method does not return a value, instead it dumps its result into your buffer (or destination) array. The index parameter describes the start offset in your destination array.

Try this link for a more verbose description of the getChars method.

I agree with the others on this, I think substring would be a better way to handle what you're trying to accomplish.


You can use a substring

String word = "onetwotwoone"
int lenght = word.length(); //Note this should be function.
String numbers = word.substring(word.length() - 3);

Alternative way for "insufficient string length or null" save:

String numbers = defaultValue();
try{
   numbers = word.substring(word.length() - 3);
} catch(Exception e) {
   System.out.println("Insufficient String length");
}

Here is a method I use to get the last xx of a string:

public static String takeLast(String value, int count) {
    if (value == null || value.trim().length() == 0 || count < 1) {
        return "";
    }

    if (value.length() > count) {
        return value.substring(value.length() - count);
    } else {
        return value;
    }
}

Then use it like so:

String testStr = "this is a test string";
String last1 = takeLast(testStr, 1); //Output: g
String last4 = takeLast(testStr, 4); //Output: ring

ReferenceURL : https://stackoverflow.com/questions/15253406/get-the-last-three-chars-from-any-string-java

반응형