我经常使用这种方式将字符串添加到多行editText的最后一行。
示例:编辑前文本:(handles.txtLine)
line 1
line 2
line 3
我想添加字符串"第4行"到它。所以我做了:
msg = get(handles.txtLine,'string');
msg_i = sprintf('nline 4');
msg = [msg msg_i];
set(handles.txtLine,'string',msg)
结果:
line 1
line 2
line 3
line 4
是否有其他方法可以实现相同的功能?
多行编辑控件的String
属性可以通过三种方式设置:
- 多行字符阵列,例如
txt1= ['line 1'; 'line 2']
。此处txt1
的大小为2x6 - 包含换行字符(例如
txt2= sprintf('line 1nline 2')
)的单行字符数组。这里txt2
的大小为1x13 - 串的单元阵列,例如
txt3 = {'line 1', 'line 2'}
在每种情况下,您都会以不同的方式添加或删除字符串中的文本,每种方法都有优缺点。
1通常是不方便的,因为你所有的线都必须有完全相同的长度,或者用空格填充。但如果是这样的话,那么添加或删除行就很容易了。
2(基本上是现在的方式)通常也不太方便,因为虽然很容易添加行,但从中间删除行就不那么容易了,除非你解析字符串寻找换行符。但如果你只需要添加行,那可能没问题。
我会修改你使用sprintf
的方式,然后连接:
msg = sprintf('%sn%s', msg, 'line 4');
是一种更简单、更灵活的语法。
您获取、修改和设置String
属性的一般方法很好,尽管如果您愿意,您可以将其全部合并为一个starement,例如:
set(handles.txtLine, 'String', sprintf('%sn%s', get(handles.txtLine, 'String'), 'line4'))
3通常是最方便的,只要你对细胞阵列感到满意。每一行都可以是你喜欢的,添加或删除项目也很容易。