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

Smalltalk打印集合元素被截断:读取TXT表格指定列输出异常求助

问题根因

你当前代码的核心问题是:rows集合中存储的是每一行的原始字符串,没有按空格分割为独立的列元素。调用currentRow at: (each asInteger)时,实际是在访问字符串的第N个字符,而非表格的第N列值。
比如第三行的原始字符串是'55 30 50',取第1位字符得到的就是'5',自然就出现了多位数截断的问题。

修复方案

修改readInput方法,读取每行后先按空格分割为列数组再存入rows即可:

readInput: inStream
        
        | line |
        
        rows := OrderedCollection new.
        [ (line := inStream nextLine) notNil ] whileTrue: [ 
            "新增分割逻辑,按空格拆分每行的列元素"
            rows add: (line findTokens: ' ').
            Transcript 
                show: 'read line:';
                show: line;
                cr.
        ].

修改后rows中每个元素都是列值组成的数组,printCols方法无需改动,currentRow at: (each asInteger)就会正确取出对应列的完整值,不会再出现截断问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:15:05