### Question:
FieldInfoResolver { static String cutFieldName(final String string, final int from) { final int nextIndex = from + 1; final int len = string.length(); if (len > nextIndex) { char c = string.charAt(nextIndex); if (c >= 'A' && c <= 'Z') { return string.substring(from); } } char[] buffer = new char[len - from]; string.getChars(from, len, buffer, 0); char c = buffer[0]; if (c >= 'A' && c <= 'Z') { buffer[0] = (char) (c + 0x20); } return new String(buffer); } private  FieldInfoResolver(Class<?> beanClass); static Stream<FieldInfo> resolve(Class<?> beanClass);  }### Answer:
@Test void cutFieldNameTest() { assertEquals("a", FieldInfoResolver.cutFieldName("getA", 3)); assertEquals("ab", FieldInfoResolver.cutFieldName("getAb", 3)); assertEquals("AB", FieldInfoResolver.cutFieldName("getAB", 3)); assertEquals("ABc", FieldInfoResolver.cutFieldName("getABc", 3)); assertEquals("ABC", FieldInfoResolver.cutFieldName("getABC", 3)); assertEquals("aB", FieldInfoResolver.cutFieldName("getaB", 3)); }