如何在颤动飞镖中获取字符串的第一个字母?

Ank*_*hah 20 android dart flutter

如何在 dart flutter 中获取字符串的第一个字符。

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

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

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

Jor*_*sys 41

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

'${mystring[0]}'
Run Code Online (Sandbox Code Playgroud)

例子:

  String mystring = 'Hello World';

  print('${mystring[0]}');
Run Code Online (Sandbox Code Playgroud)

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

H
Run Code Online (Sandbox Code Playgroud)


Yan*_*iuk 29

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

word.substring(0,1);
Run Code Online (Sandbox Code Playgroud)


Nik*_*are 7

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

void main() {
  String mystring = 'Hello World';
  String search = ''; 
  
  for (int i=0;i<mystring.length;i++){
  search += mystring[i];
  print(search);
 } 
}
Run Code Online (Sandbox Code Playgroud)

输出

H
He
Hel
Hell
Hello
Hello 
Hello W
Hello Wo
Hello Wor
Hello Worl
Hello World
Run Code Online (Sandbox Code Playgroud)

对我来说这有效。


ego*_*ego 7

需要获取第一个n值而不仅仅是一个值,并且Value not in range: 10使用子字符串不断出错,这里有一个辅助函数将字符串缩减为前 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;
  }

Run Code Online (Sandbox Code Playgroud)

用法:

    return Helpers.shortenName('Sausage', nameLimit: 5);
Run Code Online (Sandbox Code Playgroud)