В Java я использую эту функцию - https://stackoverflow.com/a/70208806/72437
Java
Код: Выделить всё
public static int length(String string) {
if (string == null) {
return 0;
}
return string.length();
}
public static String limitLength(String string, int maxLength) {
int stringLength = length(string);
if (stringLength maxLength) {
break;
}
codePointList.add(codePoint);
offset += charCount;
}
int[] codePoints = new int[codePointList.size()];
for (int i = 0; i < codePoints.length; i++)
{
codePoints[i] = codePointList.get(i);
}
String result = new String(codePoints, 0, codePoints.length);
return result;
}
Код: Выделить всё
String s = "🇺🇸👨👩👧éन्म👨💻क्षि";
for (int i=1; i
2 -> 🇺
3 -> 🇺
4 -> 🇺🇸
5 -> 🇺🇸
6 -> 🇺🇸👨
7 -> 🇺🇸👨
8 -> 🇺🇸👨
9 -> 🇺🇸👨👩
10 -> 🇺🇸👨👩
11 -> 🇺🇸👨👩
12 -> 🇺🇸👨👩👧
13 -> 🇺🇸👨👩👧é
14 -> 🇺🇸👨👩👧éन
15 -> 🇺🇸👨👩👧éन्
16 -> 🇺🇸👨👩👧éन्म
17 -> 🇺🇸👨👩👧éन्म
18 -> 🇺🇸👨👩👧éन्म👨
19 -> 🇺🇸👨👩👧éन्म👨
20 -> 🇺🇸👨👩👧éन्म👨
21 -> 🇺🇸👨👩👧éन्म👨💻
22 -> 🇺🇸👨👩👧éन्म👨💻क
23 -> 🇺🇸👨👩👧éन्म👨💻क्
24 -> 🇺🇸👨👩👧éन्म👨💻क्ष
25 -> 🇺🇸👨👩👧éन्म👨💻क्षि
26 -> 🇺🇸👨👩👧éन्म👨💻क्षि
27 -> 🇺🇸👨👩👧éन्म👨💻क्षि
28 -> 🇺🇸👨👩👧éन्म👨💻क्षि
29 -> 🇺🇸👨👩👧éन्म👨💻क्षि
Swift
Код: Выделить всё
extension String {
func prefix(_ maxLength: Int) -> String {
let substring: Substring = self.prefix(maxLength)
return String(substring)
}
}
let text = "🇺🇸👨👩👧éन्म👨💻क्षि"
for i in (1...10) {
print(">>>> text \(i) : \(text.prefix(i))")
}
>>>> text 1 : 🇺🇸
>>>> text 2 : 🇺🇸👨👩👧
>>>> text 3 : 🇺🇸👨👩👧é
>>>> text 4 : 🇺🇸👨👩👧éन्म
>>>> text 5 : 🇺🇸👨👩👧éन्म👨💻
>>>> text 6 : 🇺🇸👨👩👧éन्म👨💻क्षि
>>>> text 7 : 🇺🇸👨👩👧éन्म👨💻क्षि
>>>> text 8 : 🇺🇸👨👩👧éन्म👨💻क्षि
>>>> text 9 : 🇺🇸👨👩👧éन्म👨💻क्षि
>>>> text 10 : 🇺🇸👨👩👧éन्म👨💻क्षि
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-validity