|
19 | 19 | import java.text.Normalizer;
|
20 | 20 | import java.util.Arrays;
|
21 | 21 | import java.util.Base64;
|
| 22 | +import java.util.List; |
22 | 23 | import java.util.regex.Matcher;
|
23 | 24 | import java.util.regex.Pattern;
|
24 | 25 |
|
@@ -1437,26 +1438,26 @@ else if (elem.equals("false")) {
|
1437 | 1438 | // @returns ElementTag
|
1438 | 1439 | // @group element manipulation
|
1439 | 1440 | // @description
|
1440 |
| - // Returns The Value Of An ElementTag In Title Case. |
| 1441 | + // Returns The Value Of An ElementTag In Title Case (The First Letter Of Each Word Is Capitalized, Based On Spaces). |
1441 | 1442 | // -->
|
1442 | 1443 | tagProcessor.registerStaticTag(ElementTag.class, "to_titlecase", (attribute, object) -> {
|
1443 |
| - if (object.element.length() == 0) { |
| 1444 | + if (object.element.isEmpty()) { |
1444 | 1445 | return new ElementTag("");
|
1445 | 1446 | }
|
1446 |
| - StringBuilder TitleCase = new StringBuilder(object.element.length()); |
| 1447 | + StringBuilder titleCase = new StringBuilder(object.element.length()); |
1447 | 1448 | // Intentionally do not use CoreUtilities here as users may expect multi-language compat.
|
1448 |
| - String Upper = object.element.toUpperCase(); |
1449 |
| - String Lower = object.element.toLowerCase(); |
1450 |
| - TitleCase.append(Upper.charAt(0)); |
1451 |
| - for (int i = 1; i < object.element.length(); i++) { |
1452 |
| - if (object.element.charAt(i - 1) == ' ') { |
1453 |
| - TitleCase.append(Upper.charAt(i)); |
1454 |
| - } |
1455 |
| - else { |
1456 |
| - TitleCase.append(Lower.charAt(i)); |
| 1449 | + List<String> words = CoreUtilities.split(object.element, ' '); |
| 1450 | + for (int i = 0; i < words.size(); i++) { |
| 1451 | + String word = words.get(i); |
| 1452 | + if (!word.isEmpty()) { |
| 1453 | + titleCase.append(Character.toUpperCase(word.charAt(0))); |
| 1454 | + titleCase.append(word.substring(1).toLowerCase()); |
| 1455 | + if (i < words.size() - 1) { |
| 1456 | + titleCase.append(" "); |
| 1457 | + } |
1457 | 1458 | }
|
1458 | 1459 | }
|
1459 |
| - return new ElementTag(TitleCase.toString()); |
| 1460 | + return new ElementTag(titleCase.toString()); |
1460 | 1461 | }, "totitlecase");
|
1461 | 1462 |
|
1462 | 1463 | // <--[tag]
|
|
0 commit comments