5.3.1 常用字符串操作

以下函数可用于执行常见的字符串操作。

 
y = lower (s)
y = tolower (s)

返回字符串或字符串元胞数组 s 的副本,其中每个大写字符都被替换为对应的小写字符;非字母字符保持不变。

例如:

lower ("MiXeD cAsE 123")
    ⇒   "mixed case 123"

编程说明:tolowerlower 的别名,在 Octave 中两个名称均可使用。

另请参阅: upper.

 
y = upper (s)
y = toupper (s)

返回字符串或字符串元胞数组 s 的副本,其中每个小写字符都被替换为对应的大写字符;非字母字符保持不变。

例如:

upper ("MiXeD cAsE 123")
    ⇒   "MIXED CASE 123"

编程说明:toupperupper 的别名,在 Octave 中两个名称均可使用。

另请参阅: lower.

 
s = deblank (s)

s 中删除尾部空白字符和空字符(null)。

如果 s 是一个矩阵,deblank 会将每一行修剪为最长字符串的长度。如果 s 是一个字符串元胞数组,则对每个字符串元素进行递归操作。

示例:

deblank ("    abc  ")
     ⇒   "    abc"

deblank ([" abc   "; "   def   "])
     ⇒   [" abc  " ; "   def"]

另请参阅: strtrim.

 
s = strtrim (s)

s 中删除前导和尾部的空白字符。

如果 s 是一个矩阵,strtrim 会将每一行修剪为最长字符串的长度。如果 s 是一个字符串元胞数组,则对每个字符串元素进行递归操作。

例如:

strtrim ("    abc  ")
     ⇒   "abc"

strtrim ([" abc   "; "   def   "])
     ⇒   ["abc  "  ; "  def"]

另请参阅: deblank.

 
s = strtrunc (s, n)

将字符字符串 s 截断为长度 n

如果 s 是一个字符矩阵,则会调整其列数。

如果 s 是一个字符串元胞数组,则对每个元胞元素执行该操作,并返回新的元胞数组。

 
str = untabify (t)
str = untabify (t, tw)
str = untabify (t, tw, deblank)

t 中的 TAB 字符替换为空格。

输入 t 可以是二维字符数组,也可以是字符串元胞数组。输出与输入的类型相同。

制表符宽度由 tw 指定,默认为 8。

如果可选参数 deblank 为真(true),则字符数据末尾的空格将被删除。

以下示例读取一个文件,并写入同一文件的去制表符版本,同时去除尾部空格。

fid = fopen ("tabbed_script.m");
text = char (fread (fid, "uchar")');
fclose (fid);
fid = fopen ("untabified_script.m", "w");
text = untabify (strsplit (text, "\n"), 8, true);
fprintf (fid, "%s\n", text{:});
fclose (fid);

另请参阅: strjust, strsplit, deblank.

 
newstr = do_string_escapes (string)

string 中的转义序列转换为其所代表的实际字符。

转义序列以反斜杠开头('\'),后跟 1–3 个字符(例如 "\n" => 换行符)。

另请参阅: undo_string_escapes.

 
newstr = undo_string_escapes (string)

string 中的特殊字符还原为它们的转义形式。

例如,表达式

bell = "\a";

将响铃字符(control-g,ASCII 码 7)的值赋给字符串变量 bell。如果打印此字符串,系统将响终端铃(如果支持的话)。这通常是期望的结果。然而,有时需要打印字符串的原始表示形式,即特殊字符被其转义序列替代的形式。例如:

octave:13> undo_string_escapes (bell)
ans = \a

将不可打印的响铃字符替换为可打印的表示形式。

另请参阅: do_string_escapes.


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2