android 从dart中的某个位置获取字符

xzabzqsa  于 2022-11-03  发布在  Android
关注(0)|答案(4)|浏览(200)

如何在dart flutter中得到字符串的第一个字符。
例如,一个字符串的值为“Hello World”,应该只返回“H”。我正在从我的firestore数据库中获取数据。我的代码是:

searchByName(String searchField) {
  return Firestore.instance
      .collection('posts')
      .where('description',
      isEqualTo: searchField.substring(0, 1).toUpperCase())
      .getDocuments();
}

我想从上面的代码中的“描述”字段中接收到的数据中获得第一个字母。

0sgqnhkj

0sgqnhkj1#

您可以通过获取String的第一个元素(由索引0指示)来完成此操作:

'${mystring[0]}'

例如:

String mystring = 'Hello World';

  print('${mystring[0]}');

在这种情况下,您将获得以下输出:

H
lsmepo6l

lsmepo6l2#

要获取字符串的第一个字符,应使用方法substring示例:

word.substring(0,1);
rm5edbpk

rm5edbpk3#

对于在Firebase文档字段中执行搜索,这将起作用

void main() {
  String mystring = 'Hello World';
  String search = ''; 

  for (int i=0;i<mystring.length;i++){
  search += mystring[i];
  print(search);
 } 
}

输出量

H
He
Hel
Hell
Hello
Hello 
Hello W
Hello Wo
Hello Wor
Hello Worl
Hello World

对我来说,这很有效。

46qrfjad

46qrfjad4#

需要获取第一个n值,而不是一个值,并且使用substring时一直得到Value not in range: 10错误,下面是一个helper函数,用于将字符串剪切到前x个字符:

//* Limits given string, adds '..' if necessary
  static String shortenName(String nameRaw, {int nameLimit = 10, bool addDots = false}) {
    //* Limiting val should not be gt input length (.substring range issue)
    final max = nameLimit < nameRaw.length ? nameLimit : nameRaw.length;
    //* Get short name
    final name = nameRaw.substring(0, max);
    //* Return with '..' if input string was sliced
    if (addDots && nameRaw.length > max) return name + '..'; 
    return name;
  }

用法:

return Helpers.shortenName('Sausage', nameLimit: 5);

相关问题