将字符串拆分为具有固定字符数的数组
Split string into an array with a fixed number of characters
我目前正在创建一个小应用程序,每天自动发布一本书的部分内容。
我的书在一个文本文件中,因此我想将此文本文件的内容拆分为一个 140 个字符长的字符串数组。
我想使用诸如split()之类的函数,但到目前为止我没有得到好的结果。
顺便说一下,我要创建的字符串之间没有特定的分隔符。
我想计算文本文件中的字符数,然后定义限制(即拆分数)以拥有 140 个字符的字符串,但我想必须有一个更直观的功能。
知道吗?
这是我的实际代码,测试.txt以文本格式链接到本书。
var fs = require('fs');
var array = fs.readFileSync('./test.txt').toString().match("{1,140}");
for(i in array) {
console.log(array[i]);
}
感谢您的回答,这是我的新代码。控制台向我返回奇怪的数字。
var fs = require('fs');
var book = fs.readFileSync('./test.txt');
var lastSplit; // position of the last split that you will cache
var limit = book.length > 140 ? 140 : book.length - lastSplit;
var urlsToAdd = book.slice(lastSplit, lastSplit + limit);
for(i in book) {
console.log(book[i]);
}
谢谢
您可以做的不是一次将
整本书拆分为 n 个拆分,每个拆分由 140 个字符组成,而是记住最后一个拆分的最后一个位置,这也是之前完成的拆分总数。
var lastSplit; // position of the last split that you will cache
var limit = book.length - lastSplit > 140 ? 140 : book.length - lastSplit;
var urlsToAdd = book.slice(lastSplit, lastSplit + limit);
- 因此,
lastSplit
将保持最后一次拆分的位置,并指示还发布了多少个字符。 - 现在你需要检查你将在推特上发多少个字符,以确保你不会超过书中的字符长度
- 你从最后一个已知位置按你想要的字符数(
lastSplit + 140
)或书的长度(如果你接近结尾)进行拆分
当然,这种逻辑是非常愚蠢的,这意味着你不在乎你是否在单词或句子中间停止字符......等等。
更新:我提供的代码是一个一般的思考过程,不一定是复制/粘贴的东西。但是,从您粘贴的代码中,您可以尝试:
var fs = require('fs');
var book = fs.readFileSync('./test.txt');
var lastSplit = 0;
function tweet(book) {
var limit = book.length - lastSplit > 140 ? 140 : book.length - lastSplit;
var tweet = book.slice(lastSplit, lastSplit + limit);
lastSplit += limit;
return tweet;
}
while (lastSplit < book.length) {
console.log(tweet(book));
}
更新II:使用虚拟书工作代码(以说服您它有效!
function tweet(book) {
var lastSplit = 0;
while (lastSplit < book.length) {
var limit = book.length - lastSplit > 140 ? 140 : book.length - lastSplit;
var tweet = book.slice(lastSplit, lastSplit + limit);
lastSplit += limit;
$('body').append('<p>' + tweet + '</p>');
}
}
// this will generate a dummy string containing numbers from 0-800
tweet(Array.apply(null, {length: 800}).map(Number.call, Number).join(''));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
相关文章:
- 从指定范围创建字符数组
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- 正在转义javascript数组中的html字符
- 为什么Angularjs服务返回的是字符数组而不是对象数组
- 将组成单词的字符添加到数组的开头
- 用javascript将字符串连接到数组中
- 用Objective-C将JSON解析成C风格的字符数组
- 打破ng中的字符数组,重复并设置每个字符自己的输入标记
- 计算JavaScript中句子(数组)中字符(数组)的出现次数
- 将句子字符串拆分为单词数组,然后将单词数组拆分为单词数组中的字符数组
- 使用JavaScript将字符串转换为字符数组
- 从占转义字符的字符数组创建字符串
- 如何从字符数组中创建3个唯一值
- 在Chrome下,Base-64字符数组异常的无效长度
- 将正则表达式与字符数组匹配
- 通过字符数组转义字符串
- 替换字符串中的字符数组
- 如何将Javascript字符串转换为八位字节/字符数组
- 在字符数组中循环
- 使用敲除扩展程序不允许使用字符数组