Add String.reverse
method
This commit is contained in:
parent
28a60b3de0
commit
230385b587
@ -3616,6 +3616,23 @@ String String::repeat(int p_count) const {
|
|||||||
return new_string;
|
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 {
|
String String::left(int p_len) const {
|
||||||
if (p_len < 0) {
|
if (p_len < 0) {
|
||||||
p_len = length() + p_len;
|
p_len = length() + p_len;
|
||||||
|
@ -304,6 +304,7 @@ public:
|
|||||||
String replace(const char *p_key, const char *p_with) const;
|
String replace(const char *p_key, const char *p_with) const;
|
||||||
String replacen(const String &p_key, const String &p_with) const;
|
String replacen(const String &p_key, const String &p_with) const;
|
||||||
String repeat(int p_count) const;
|
String repeat(int p_count) const;
|
||||||
|
String reverse() const;
|
||||||
String insert(int p_at_pos, const String &p_string) const;
|
String insert(int p_at_pos, const String &p_string) const;
|
||||||
String erase(int p_pos, int p_chars = 1) const;
|
String erase(int p_pos, int p_chars = 1) const;
|
||||||
String pad_decimals(int p_digits) const;
|
String pad_decimals(int p_digits) const;
|
||||||
|
@ -1659,6 +1659,7 @@ static void _register_variant_builtin_methods() {
|
|||||||
bind_string_methodv(replace, static_cast<String (String::*)(const String &, const String &) const>(&String::replace), sarray("what", "forwhat"), varray());
|
bind_string_methodv(replace, static_cast<String (String::*)(const String &, const String &) const>(&String::replace), sarray("what", "forwhat"), varray());
|
||||||
bind_string_method(replacen, sarray("what", "forwhat"), varray());
|
bind_string_method(replacen, sarray("what", "forwhat"), varray());
|
||||||
bind_string_method(repeat, sarray("count"), varray());
|
bind_string_method(repeat, sarray("count"), varray());
|
||||||
|
bind_string_method(reverse, sarray(), varray());
|
||||||
bind_string_method(insert, sarray("position", "what"), varray());
|
bind_string_method(insert, sarray("position", "what"), varray());
|
||||||
bind_string_method(erase, sarray("position", "chars"), varray(1));
|
bind_string_method(erase, sarray("position", "chars"), varray(1));
|
||||||
bind_string_method(capitalize, sarray(), varray());
|
bind_string_method(capitalize, sarray(), varray());
|
||||||
|
@ -720,6 +720,12 @@
|
|||||||
Replaces all [b]case-insensitive[/b] occurrences of [param what] inside the string with the given [param forwhat].
|
Replaces all [b]case-insensitive[/b] occurrences of [param what] inside the string with the given [param forwhat].
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="reverse" qualifiers="const">
|
||||||
|
<return type="String" />
|
||||||
|
<description>
|
||||||
|
Returns the copy of this string in reverse order.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
<method name="rfind" qualifiers="const">
|
<method name="rfind" qualifiers="const">
|
||||||
<return type="int" />
|
<return type="int" />
|
||||||
<param index="0" name="what" type="String" />
|
<param index="0" name="what" type="String" />
|
||||||
|
@ -627,6 +627,12 @@
|
|||||||
Replaces all [b]case-insensitive[/b] occurrences of [param what] inside the string with the given [param forwhat].
|
Replaces all [b]case-insensitive[/b] occurrences of [param what] inside the string with the given [param forwhat].
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
|
<method name="reverse" qualifiers="const">
|
||||||
|
<return type="String" />
|
||||||
|
<description>
|
||||||
|
Returns the copy of this string in reverse order.
|
||||||
|
</description>
|
||||||
|
</method>
|
||||||
<method name="rfind" qualifiers="const">
|
<method name="rfind" qualifiers="const">
|
||||||
<return type="int" />
|
<return type="int" />
|
||||||
<param index="0" name="what" type="String" />
|
<param index="0" name="what" type="String" />
|
||||||
|
@ -1607,6 +1607,11 @@ TEST_CASE("[String] Repeat") {
|
|||||||
CHECK(t == s);
|
CHECK(t == s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("[String] Reverse") {
|
||||||
|
String s = "Abcd";
|
||||||
|
CHECK(s.reverse() == "dcbA");
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("[String] SHA1/SHA256/MD5") {
|
TEST_CASE("[String] SHA1/SHA256/MD5") {
|
||||||
String s = "Godot";
|
String s = "Godot";
|
||||||
String sha1 = "a1e91f39b9fce6a9998b14bdbe2aa2b39dc2d201";
|
String sha1 = "a1e91f39b9fce6a9998b14bdbe2aa2b39dc2d201";
|
||||||
|
Loading…
Reference in New Issue
Block a user