len返回字符对象的长度。
len_trim返回去掉尾部空格后剩余的字符数。
trim返回移除尾部空格后的字符值。
这些常用于格式化标签、拼接路径和检查输入有效长度;适合区分“字段容量”和“当前有效尾部位置”,但不会删除字符串开头或中间的空格。
语法结构
n = len(text)
n = len_trim(text)
clean = trim(text)
- len包含全部字符位置,包括尾部空格。对定长变量,就是声明的len参数。
- len_trim返回最后一个非空格字符的位置;如果全是空格,结果为0。
- trim(text)的结果长度等于len_trim(text);如果text全是空格,结果可以是长度0的字符值。
本文代码
! 声明长度、有效尾部长度、去除尾部空格后的值。
program trimLenTrimDemo
implicit none
character(len=12) :: sampleName
sampleName = "NaCl"
print "(A,I0)", "LEN:", len(sampleName)
print "(A,I0)", "LEN_TRIM:", len_trim(sampleName)
write (*, "(A,A,A)") "原字符值:|", sampleName, "|"
write (*, "(A,A,A)") "TRIM结果:|", trim(sampleName), "|"
end program trimLenTrimDemo
编译运行
(base) hong@hongdeMacBook-Pro 057.trimLenTrim % gfortran -Wall -Wextra -std=f2018 exampleTrimLenTrim.f90 -o trimLenTrimDemo
(base) hong@hongdeMacBook-Pro 057.trimLenTrim % ./trimLenTrimDemo
LEN:12
LEN_TRIM:4
原字符值:|NaCl |
TRIM结果:|NaCl|
现象分析
sampleName声明长度为12,所以len始终返回12。NaCl占前4个位置,其余8个位置由赋值规则补为空格,因此len_trim返回4。
直接输出sampleName时,两条竖线之间包含12个字符;trim(sampleName)产生只保留NaCl有效尾部的字符结果,所以右竖线紧随l出现。
len_trim只报告位置,不修改原变量;trim返回新字符表达式,也不会原地改变sampleName。