【问题标题】:How to get first letter of string in flutter dart?如何在颤振飞镖中获得字符串的第一个字母?
【发布时间】:2020-01-03 22:03:50
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android flutter dart


    【解决方案1】:

    您可以通过获取字符串的第一个元素(由索引 0 表示)来做到这一点:

    '${mystring[0]}'
    

    示例:

      String mystring = 'Hello World';
    
      print('${mystring[0]}');
    

    在这种情况下,您将得到一个输出:

    H
    

    【讨论】:

    • 嘿 Jorgesys,您的代码确实有效,但我无法澄清我的问题,这很糟糕。我最近编辑了我的问题。如果您能提供帮助,请告诉我
    • 当然我们可以帮助您,但请更新您的问题,阅读How to Ask 并添加更多详细信息。
    • 嗨@Jorgesys 我想通知您,您的答案不正确。您可以在dartpad.dartlang.org/dart 轻松检查自己
    • @YanDatsiuk 如果我使用 String s = 'this is a string';打印 s[0];正如您所建议的,我收到错误“错误:'print' 不是类型。print s[0];”,但如果我使用我的回答中描述的方法:String s = 'this is a string';打印('${s[0]}');结果我得到“t”,为什么我的答案不正确? :-|
    【解决方案2】:

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

    word.substring(0,1);
    

    【讨论】:

      【解决方案3】:

      对于在 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
      

      对我来说这很有效。

      【讨论】:

      • 给出错误RangeError (index): Invalid value: Not in inclusive range 0..10: 11
      • 你能更新一下吗?
      • 好的,我更新了
      • 感谢更新。顺便问一下,这种拆分字符串的方法是怎么调用的?谢谢
      【解决方案4】:

      需要获取第一个 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;
        }
      
      

      用法:

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

      【讨论】:

        猜你喜欢
        • 2015-06-20
        • 1970-01-01
        • 1970-01-01
        • 2020-02-13
        • 2021-10-24
        • 2021-09-27
        • 1970-01-01
        • 2020-05-19
        • 2019-08-13
        相关资源
        最近更新 更多