Merge pull request #78529 from Chaosus/string_reverse

Add `String.reverse` method
This commit is contained in:
Rémi Verschelde
2023-08-16 16:53:40 +02:00
6 changed files with 36 additions and 0 deletions

View File

@ -3635,6 +3635,23 @@ String String::repeat(int p_count) const {
return new_string;
}
String String::reverse() const {
int len = length();
if (len <= 1) {
return *this;
}
String new_string;
new_string.resize(len + 1);
const char32_t *src = ptr();
char32_t *dst = new_string.ptrw();
for (int i = 0; i < len; i++) {
dst[i] = src[len - i - 1];
}
dst[len] = _null;
return new_string;
}
String String::left(int p_len) const {
if (p_len < 0) {
p_len = length() + p_len;

View File

@ -305,6 +305,7 @@ public:
String replace(const char *p_key, const char *p_with) const;
String replacen(const String &p_key, const String &p_with) const;
String repeat(int p_count) const;
String reverse() const;
String insert(int p_at_pos, const String &p_string) const;
String erase(int p_pos, int p_chars = 1) const;
String pad_decimals(int p_digits) const;