Add contains_char() for single-character 'contains' calls.
This commit is contained in:
@@ -3314,6 +3314,10 @@ int String::find(const String &p_str, int p_from) const {
|
||||
return -1; // won't find anything!
|
||||
}
|
||||
|
||||
if (src_len == 1) {
|
||||
return find_char(p_str[0], p_from); // Optimize with single-char find.
|
||||
}
|
||||
|
||||
const char32_t *src = get_data();
|
||||
const char32_t *str = p_str.get_data();
|
||||
|
||||
@@ -3354,6 +3358,10 @@ int String::find(const char *p_str, int p_from) const {
|
||||
return -1; // won't find anything!
|
||||
}
|
||||
|
||||
if (src_len == 1) {
|
||||
return find_char(*p_str, p_from); // Optimize with single-char find.
|
||||
}
|
||||
|
||||
const char32_t *src = get_data();
|
||||
|
||||
if (src_len == 1) {
|
||||
@@ -4081,7 +4089,7 @@ String String::format(const Variant &values, const String &placeholder) const {
|
||||
Variant v_val = values_arr[i];
|
||||
String val = v_val;
|
||||
|
||||
if (placeholder.contains("_")) {
|
||||
if (placeholder.contains_char('_')) {
|
||||
new_string = new_string.replace(placeholder.replace("_", i_as_str), val);
|
||||
} else {
|
||||
new_string = new_string.replace_first(placeholder, val);
|
||||
|
||||
@@ -432,6 +432,7 @@ public:
|
||||
_FORCE_INLINE_ bool is_empty() const { return length() == 0; }
|
||||
_FORCE_INLINE_ bool contains(const char *p_str) const { return find(p_str) != -1; }
|
||||
_FORCE_INLINE_ bool contains(const String &p_str) const { return find(p_str) != -1; }
|
||||
_FORCE_INLINE_ bool contains_char(char32_t p_chr) const { return find_char(p_chr) != -1; }
|
||||
_FORCE_INLINE_ bool containsn(const char *p_str) const { return findn(p_str) != -1; }
|
||||
_FORCE_INLINE_ bool containsn(const String &p_str) const { return findn(p_str) != -1; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user