在Java 9中,我们可以像使用little endian
一样简单地将C
转换为下划线
camelCase
现在我的问题是飞镖中的这段代码等效吗?
答案 0 :(得分:2)
您可以使用 RegExp 和 replaceAllMapped 方法:
String text = 'camelCase';
RegExp exp = RegExp(r'(?<=[a-z])[A-Z]');
String result = text.replaceAllMapped(exp, (Match m) => ('_' + m.group(0))).toLowerCase();
最诚挚的问候
答案 1 :(得分:1)
如果已经有用于此的程序包,请不要重新编写代码:
Github:https://github.com/Ephenodrom/Dart-Basic-Utils Pub Dev:https://pub.dev/packages/basic_utils
安装:
dependencies:
basic_utils: ^1.5.1
用法:
String result = StringUtils.camelCaseToLowerUnderscore("camelCase");
print(result); // camel_case
StringUtils类中的其他有用方法:
String defaultString(String str, {String defaultStr = ''});
bool isNullOrEmpty(String s);
bool isNotNullOrEmpty(String s);
String camelCaseToUpperUnderscore(String s);
String camelCaseToLowerUnderscore(String s);
bool isLowerCase(String s);
bool isUpperCase(String s);
bool isAscii(String s);
String capitalize(String s);
String reverse(String s);
int countChars(String s, String char, {bool caseSensitive = true});
bool isDigit(String s);
bool equalsIgnoreCase(String a, String b);
bool inList(String s, List<String> list, {bool ignoreCase = false});
bool isPalindrome(String s);
String hidePartial(String s, {int begin = 0, int end, String replace = "*"});
String addCharAtPosition(String s, String char, int position,{bool repeat = false});