在飞镖语言中将camelCase字符串转换为下划线

时间:2019-08-05 07:59:55

标签: string flutter dart

在Java 9中,我们可以像使用little endian一样简单地将C转换为下划线

camelCase

现在我的问题是飞镖中的这段代码等效吗?

2 个答案:

答案 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});
相关问题