Some string and minor optimizations

This commit is contained in:
Ivan Kochurkin
2021-06-06 14:57:30 +03:00
parent bc3c05a3bd
commit a0aaf42fb1
6 changed files with 17 additions and 10 deletions
@@ -105,8 +105,16 @@ public final class ClassId {
@NotNull
public static ClassId fromString(@NotNull String string, boolean isLocal) {
String packageName = StringsKt.substringBeforeLast(string, '/', "").replace('/', '.');
String className = StringsKt.substringAfterLast(string, '/', string);
int lastSlashIndex = string.lastIndexOf("/");
String packageName;
String className;
if (lastSlashIndex == -1) {
packageName = "";
className = string;
} else {
packageName = string.substring(0, lastSlashIndex).replace('/', '.');
className = string.substring(lastSlashIndex + 1);
}
return new ClassId(new FqName(packageName), new FqName(className), isLocal);
}
@@ -42,7 +42,7 @@ object NameUtils {
// NB `uppercase` uses Locale.ROOT and is locale-independent.
// See Javadoc on java.lang.String.toUpperCase() for more details.
if (Character.isJavaIdentifierStart(str[0]))
str.substring(0, 1).uppercase() + str.substring(1)
str[0].uppercase() + str.substring(1)
else
"_$str"