You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter/Dart中如何访问列表及用户输入字符串的指定索引位置元素

Flutter/Dart 实现字符串/列表指定索引元素获取方案

核心语法说明

Dart中字符串、列表的下标访问语法和Python完全一致,直接使用[索引值]即可,索引同样从0开始计数。

对应Python示例的Dart命令行实现

import 'dart:io';

void main() {
  stdout.write("Insert your word here: ");
  String myWord = stdin.readLineSync() ?? "";
  // 提前做边界判断避免索引越界异常
  if (myWord.length >= 5) {
    print(myWord[4]);
  } else {
    print("输入的字符串长度不足,无法访问索引4的位置");
  }
}

Flutter 移动端页面实现(带用户输入框)

如果是在Flutter应用内实现,需要结合输入组件获取用户输入,示例如下:

import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text("索引元素获取")),
        body: const IndexDemoPage(),
      ),
    );
  }
}

class IndexDemoPage extends StatefulWidget {
  const IndexDemoPage({super.key});

  @override
  State<IndexDemoPage> createState() => _IndexDemoPageState();
}

class _IndexDemoPageState extends State<IndexDemoPage> {
  final TextEditingController _inputController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(16),
      child: Column(
        children: [
          TextField(
            controller: _inputController,
            decoration: const InputDecoration(hintText: "请输入字符串"),
          ),
          const SizedBox(height: 20),
          ElevatedButton(
            onPressed: () {
              String inputStr = _inputController.text;
              if (inputStr.length >= 5) {
                // 控制台打印索引4的字符
                print(inputStr[4]);
                // 如需在页面显示可弹出提示
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text("索引4的字符为:${inputStr[4]}"))
                );
              } else {
                ScaffoldMessenger.of(context).showSnackBar(
                  const SnackBar(content: Text("字符串长度不足5,无法访问索引4"))
                );
              }
            },
            child: const Text("获取索引4的字符"),
          )
        ],
      ),
    );
  }
}

注意事项

  • 和Python逻辑一致,Dart的字符串、列表索引都从0开始计数,你示例中Hello长度为5,有效索引范围是0~4,所以myWord[4]会返回字符o
  • 访问前建议先判断容器长度是否大于等于目标索引+1,避免触发RangeError索引越界异常

内容的提问来源于stack exchange,提问作者bilbo_bo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 10:27:00