首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将弦分成等份颤振

将弦分成等份颤振
EN

Stack Overflow用户
提问于 2022-03-03 17:41:05
回答 5查看 1.1K关注 0票数 3

有一个带有随机数字和字母的字符串。我需要把这条线分成5部分。去拿单子。该怎么做呢?谢谢。

代码语言:javascript
复制
String str = '05b37ffe4973959c4d4f2d5ca0c1435749f8cc66';

应起作用:

代码语言:javascript
复制
List<String> list = [
  '05b37ffe',
  '4973959c',
  '4d4f2d5c',
  'a0c14357',
  '49f8cc66',
];
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2022-03-03 18:18:00

我知道已经有了一个可行的答案,但我已经开始这样做了,所以这里有一个不同的解决方案。

代码语言:javascript
复制
String str = '05b37ffe4973959c4d4f2d5ca0c1435749f8cc66';
 List<String> list = [];

 final divisionIndex = str.length ~/ 5;

 for (int i = 0; i < str.length; i++) {
    if (i % divisionIndex == 0) {
    final tempString = str.substring(i, i + divisionIndex);
       list.add(tempString);
     }
   }
  log(list.toString()); // [05b37ffe, 4973959c, 4d4f2d5c, a0c14357, 49f8cc66]
票数 0
EN

Stack Overflow用户

发布于 2022-03-03 18:08:02

代码语言:javascript
复制
String str = '05b37ffe4973959c4d4f2d5ca0c1435749f8cc66';
  int d=1
;  try{
     d = (str.length/5).toInt();
     print(d);
  }catch(e){
  d=1;
  }
  List datas=[];
  for(int i=0;i<d;i++){
    var c=i+1;
    try {
      datas.add(str.substring(i * d, d*c));
    } catch (e) {
      print(e);
    }
  }
  print(datas);

}

代码语言:javascript
复制
  String str = '05b37ffe4973959c4d4f2d5ca0c1435749f8cc66';
  int d = (str.length / 5).toInt();
  var data = List.generate(d - 3, (i) => (d * (i + 1)) <= str.length ? str.substring(i * d, d * (i + 1)) : "");
  print(data);//[05b37ffe, 4973959c, 4d4f2d5c, a0c14357, 49f8cc66]
票数 0
EN

Stack Overflow用户

发布于 2022-03-03 18:48:08

如果你是在一个线,有动态的部分。确保导入省道: min函数的数学。这是模块化的,也就是你可以通过你想要的任何数量的零件(默认5)。如果你的字符串有3个字符长,并且你想要5个部分,那么它会返回3个部分,每个部分有1个字符。

代码语言:javascript
复制
List<String> splitIntoEqualParts(String str, [int parts = 5]) {
  int _parts = min(str.length, parts);
  int _sublength = (str.length / _parts).ceil();
  
  return Iterable<int>
    //Initialize empty list
    .generate(_parts)
    .toList()
    // Apply the access logic
    .map((index) => str.substring(_sublength * index, min(_sublength * index + _sublength, str.length)))
    .toList();
}

然后您可以使用它,如print(splitIntoEqualParts('05b37ffe4973959c4d4f2d5ca0c1435749f8cc66', 5));

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71341474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档