9 Haziran 2020 Salı

Lang3 RandomStringUtils Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.lang3.RandomStringUtils;
Açıklaması şöyle
You can't set the seed of the underlying generator the method uses (RandomStringUtils stores a static PRNG variable initialized with an undefined seed, namely new Random()).
randomAlphabetic metodu
Örnek
Şöyle yaparız.
RandomStringUtils.randomAlphabetic(10);
randomAlphanumeric metodu
Örnek
Şöyle yaparız
String username = RandomStringUtils.randomAlphanumeric(8).toLowerCase();
random metodu
Şöyle yaparız
String key = RandomStringUtils.random(5, String.valueOf(System.currentTimeMillis()));

5 Haziran 2020 Cuma

Lang3 StringUtils Sınıfı

Giriş
Şu satırı dahil ederiz.
import org.apache.commons.lang3.StringUtils;
whitespace deyince boşluk karakteri (space) dışında tab + newline gibi karakterleri de dahil etmek gerekir.

String içinde prefix arama metodlarından birisi de Z-function.

abbreviate metodu
Şöyle yaparız.
StringUtils.abbreviate("abcdefg", 6) = "abc..."
StringUtils.abbreviate("abcdefg", 7) = "abcdefg"
StringUtils.abbreviate("abcdefg", 8) = "abcdefg"
StringUtils.abbreviate("abcdefg", 4) = "a..."
appendIfMissing metodu
String'in sonunun belirtilen string ile bitmesini garanti eder.
Örnek ver

capitalize metodu
Açıklaması şöyle.
Capitalizes a String changing the first character to title case as per Character.toTitleCase(int). No other characters are changed.
Örnek
Şöyle yaparız.
String propertyName = "name";
String methodName = "set" + StringUtils.capitalize(propertyName);
chop metodu
En son karakteri siler.

contains metodu
Örnek ver

countMatches metodu - CharSequence + Char
Örnek
Şöyle yaparız
String str =  ...;
char character = ...
int count = StringUtils.countMatches(str,character);
countMatches metodu - CharSequence + CharSequence + 
Örnek
Nokta karakterini saymak için şöyle yaparız
int count = StringUtils.countMatches("a.b.c.d", ".");
deleteWhitespace metodu
Girdinin sol, sağ ve ortasındaki yani tüm whitespace karakterlerini siler. Şöyle yaparız
str = StringUtils.deleteWhitespace(str);
difference metodu
Metodun içi şöyle.
public static String difference(String str1, String str2) {
  if (str1 == null) {
    return str2;
  }
  if (str2 == null) {
    return str1;
  }
  int at = indexOfDifference(str1, str2);
  if (at == INDEX_NOT_FOUND) {
    return EMPTY;
  }
  return str2.substring(at);
}
Örnek
Şöyle yaparız.
StringUtils.difference(null, null) = null
 StringUtils.difference("", "") = ""
 StringUtils.difference("", "abc") = "abc"
 StringUtils.difference("abc", "") = ""
 StringUtils.difference("abc", "abc") = ""
 StringUtils.difference("ab", "abxyz") = "xyz"
 StringUtils.difference("abcde", "abxyz") = "xyz"
 StringUtils.difference("abcde", "xyz") = "xyz"
endsWithAny metodu
Şöyle yaparız.
String fileName = "abc.txt";
String[] extensions = {".txt", ".doc", ".pdf"};
System.out.println(StringUtils.endsWithAny(fileName, extensions));
equalsIgnoreCase metodu
Örnek ver

getCommonPrefix metodu
İki string arasındaki ortak başlangıç string'ini döndürür. Örnek ver

getLevenshteinDistance metodu
Şöyle yaparız.
System.err.println(StringUtils.getLevenshteinDistance("foobar", "bar"));
indexOfAnyBut metodu
İkinci parametrede olmayan ilk karakterin konumunu döner.

indexOfDifference metodu
Metodun içi şöyle.
public static int indexOfDifference(CharSequence cs1, CharSequence cs2) {
  if (cs1 == cs2) {
    return INDEX_NOT_FOUND;
  }
  if (cs1 == null || cs2 == null) {
    return 0;
  }
  int i;
  for (i = 0; i < cs1.length() && i < cs2.length(); ++i) {
    if (cs1.charAt(i) != cs2.charAt(i)) {
      break;
    }
  }
  if (i < cs2.length() || i < cs1.length()) {
    return i;
  }
  return INDEX_NOT_FOUND;
}
isAllBlank metodu
Şöyle yaparız.
if(!StringUtils.isAllBlank(Constant.A,Constant.B,.......)){
    return true;
}
isBlank metodu
Girdi null veya tamamen white space ise true döner.
Örnek
Şöyle yaparız
String str = " ";
boolean res1 = StringUtils.isNotBlank(str);
boolean res2 = StringUtils.isBlank(str);

isEmpty metodu
Örnek
Şöyle yaparız
String str = " ";
boolean res1 = StringUtils.isNotEmpty(str);
boolean res2 = StringUtils.isEmpty(str);
Örnek
Şöyle yaparız.
if(StringUtils.isEmpty(...)){
  ...  
}   
isNotBlank metodu
Şöyle yaparız.
return StringUtils.isNotBlank(Constant.A)
isNumeric metodu
Şöyle yaparız
private java.util.Optional<Integer> parseIntegerProperty(String property) {
  return Optional.ofNullable(property)
    .filter(StringUtils::isNumeric)
    .map(Integer::valueOf);
}

// ...
java.util.Optional<Integer> javaOptional = parseIntegerProperty("123")
someLegacyAPI(com.google.common.base.Optional.fromJavaUtil(javaOptional);
join metodu - Iterable + separator
Bu metod Java 8 ile gelen String.join() metodundan halen daha iyi çünkü Java metodu sadece Iterable<? CharSequence> kabul ediliyor. Yani String of List , String or Array gibi bir şey istiyor. Bu metod ise Object listesi verirsek nesnenin toString() metodunu çağırıyor.

Örnek
Şöyle yaparız.
String[] s = new String[] {"a", "b", "c"};
String joined = StringUtils.join(s, ",");  // "a,b,c"
Örnek
Şöyle yaparız.
org.apache.commons.lang.StringUtils.join(list, conjunction);
left metodu
Soldaki belirtilen sayıdaki karakteri döner. Daha az karakter varsa string'i aynen döner. String null ise null döner. Açıklaması şöyle.
If len characters are not available, or the String is null, the String will be returned without an exception. An empty String is returned if len is negative.
StringUtils.left(null, ) = null
StringUtils.left(
, -ve) = ""
StringUtils.left("", *) = ""
StringUtils.left("abc", 0) = ""
StringUtils.left("abc", 2) = "ab"
StringUtils.left("abc", 4) = "abc"
Örnek
Şöyle yaparız.
String upToNCharacters = StringUtils.left(s, n);
leftPad metodu
Bu metodu kendimiz yazsaydık şöyle yapardık
static String padLeftZeros(String inputString, int length) {
  if (inputString.length() >= length) {
    return inputString;
  }
  StringBuilder sb = new StringBuilder();
  while (sb.length() < length - inputString.length()) {
    sb.append('0');
  }
  sb.append(inputString);

  return sb.toString();
}
n tane sıfır ile dolu bir string elde etmek için Java 11 ile şöyle yaparız
String paddingZeros = "0".repeat(length - inputString.length());
normalizeSpace metodu
Girdinin sol ve sağındaki whitespace karakterleri siler. Ayrıca kelimeler arasındaki whitespace karakterleri 1 tane olacak hale getirir. Yani girdiyi düzgün bir cümle haline getirir. Şöyle yaparız.
String str = "   Text    with    multiple    spaces    ";
str = org.apache.commons.lang3.StringUtils.normalizeSpace(str);
// str = "Text with multiple spaces"
removeEnd metodu
Şöyle yaparız.
// path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null"
StringUtils.removeEnd(path, ".null");
// path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf"
repeat metodu
Şöyle yaparız.
String str = "abc";
String repeated = StringUtils.repeat(str, 3);

repeated.equals("abcabcabc");
replace metodu
Şöyle yaparız.
cleantext = StringUtils.replace(cleantext, "  ", " ");
reverse metodu
Örnek ver

right metodu
Sağdaki belirtilen sayıdaki karakteri döner.

rightPad metodu
Örnek ver

splitByCharacterTypeCamelCase metodu
Bazı string'leri biraz dha okunaklı hale getimek için kullanılır.
Örnek
Şöyle yaparız.
StringUtils.splitByCharacterTypeCamelCase("yourCamelCaseText")
Örnek
Şöyle yaparız.
StringUtils.join(
     StringUtils.splitByCharacterTypeCamelCase("SentenceWithMultipleWords"),
     ' '
);
substring metodu
Şöyle yaparız.
StringUtils.substring(null, *, *)    = null
StringUtils.substring("", * ,  *)    = "";
StringUtils.substring("abc", 0, 2)   = "ab"
StringUtils.substring("abc", 2, 0)   = ""
StringUtils.substring("abc", 2, 4)   = "c"
StringUtils.substring("abc", 4, 6)   = ""
StringUtils.substring("abc", 2, 2)   = ""
StringUtils.substring("abc", -2, -1) = "b"
StringUtils.substring("abc", -4, 2)  = "ab"
subStringAfter metodu
Belirtilen ayracı bulamazsa "" (boş string) döndürür. Bulursa ayraçtan sonra gelen kısmı döndürür. Aryaç son karakter ise yien "" (boş string) döndürür.

subStringAfterLast metodu
subStringAfter() gibidir. Aynı ayraçtan birden fazla olma ihitmali varsa kullanılır. Son ayracı arar.

startsWith metodu
Şöyle yaparız.
StringUtils.startsWith("abcdef", "abc");
stripEnd metodu
StringUtils strip metodları yazısına taşıdım.

stripStart metodu
StringUtils strip metodları yazısına taşıdım.