String 显示空间数

String 显示空间数,string,String,如何显示字符串(向量)中包含的字数? 两个单词之间可能有多个空格 输入:“你好,世界,你好”应该返回5 要计算向量v中的空格数,我写下: N←+/v∊' ' 但是,它不会显示字数。 有人吗 a是一个向量,在字母出现的位置包含1-s,在其他位置包含0-s s: H e l l o w o r l d , h o w a r e y o u ? a: 1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 一个单词的每个首字母都对

如何显示字符串(向量)中包含的字数? 两个单词之间可能有多个空格

输入:“你好,世界,你好”应该返回5

要计算向量v中的空格数,我写下: N←+/v∊' '

但是,它不会显示字数。 有人吗

a
是一个向量,在字母出现的位置包含1-s,在其他位置包含0-s

s:   H e l l o   w o r l d ,   h o w   a r e   y o u ?
a:   1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0
一个单词的每个首字母都对应于一个1加上一个0(或在初始位置)。好的,如果我们将这个序列向右移动,取反,并将其“and”转换为
a
的原始值,我们可以识别单词的首字母:

s:           H e l l o   w o r l d ,   h o w   a r e   y o u ?
a,0:         1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0
~0,a:        1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1
(a,0)∧~0,a:  1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
现在,计算单词就像求和一样简单:
+/

您可以在或与我的解释器一起尝试代码

a
是一个向量,在字母出现的位置包含1-s,在其他位置包含0-s

s:   H e l l o   w o r l d ,   h o w   a r e   y o u ?
a:   1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0
一个单词的每个首字母都对应于一个1加上一个0(或在初始位置)。好的,如果我们将这个序列向右移动,取反,并将其“and”转换为
a
的原始值,我们可以识别单词的首字母:

s:           H e l l o   w o r l d ,   h o w   a r e   y o u ?
a,0:         1 1 1 1 1 0 1 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0
~0,a:        1 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 1
(a,0)∧~0,a:  1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0
现在,计算单词就像求和一样简单:
+/


您可以使用我的解释器在或使用

尝试代码。我的解决方案类似,但诀窍是故意在句子前添加空格,只计算字母前的空格。这样,空格的数量等于单词的数量,并且在执行操作之前,您不必担心修剪文本

如果我没有添加空格(在第二行),我将无法知道文本是否有任何前导空格,因此我必须以某种方式检查它。通过故意添加空格,我简化了文本,这样我就知道我总是在处理至少一个前导空格

数单词:

P←"My     cat  doesn't like    fishy  tasting     food.   "
L←' '⍷' ',P
+/L∧~1⌽L
输出:

7
"My cat doesn't like fishy tasting food."
去掉不必要的空格:

P←"My     cat  doesn't like    fishy  tasting     food.   "
L←' '⍷' ',P
+/L∧~1⌽L
在相关主题上,
L
的值也可用于修剪文本前端和末尾的空格,并删除多余的空格:

1↓(L⍲1⌽L)/' ',P
((∧\L)⍱⌽∧\⌽L)/' ',P
输出:

7
"My cat doesn't like fishy tasting food."
修剪前导和尾随空格:

P←"My     cat  doesn't like    fishy  tasting     food.   "
L←' '⍷' ',P
+/L∧~1⌽L
如果要在不删除多余空格的情况下修剪文本的开头和结尾,请执行以下操作:

1↓(L⍲1⌽L)/' ',P
((∧\L)⍱⌽∧\⌽L)/' ',P
但是,在最后一个示例中,没有必要添加前导空格。因此,如果您不需要出于任何其他原因计算
L
,这里有一个使用
L2
的替代方法:

L2←" "⍷P
((∧\L2)⍱⌽∧\⌽L2)/P
输出(与开头相同,但结尾的多余空格已消失):


我的解决方案与此类似,但诀窍是在句子前故意添加空格,只计算字母前的空格。这样,空格的数量等于单词的数量,并且在执行操作之前,您不必担心修剪文本

如果我没有添加空格(在第二行),我将无法知道文本是否有任何前导空格,因此我必须以某种方式检查它。通过故意添加空格,我简化了文本,这样我就知道我总是在处理至少一个前导空格

数单词:

P←"My     cat  doesn't like    fishy  tasting     food.   "
L←' '⍷' ',P
+/L∧~1⌽L
输出:

7
"My cat doesn't like fishy tasting food."
去掉不必要的空格:

P←"My     cat  doesn't like    fishy  tasting     food.   "
L←' '⍷' ',P
+/L∧~1⌽L
在相关主题上,
L
的值也可用于修剪文本前端和末尾的空格,并删除多余的空格:

1↓(L⍲1⌽L)/' ',P
((∧\L)⍱⌽∧\⌽L)/' ',P
输出:

7
"My cat doesn't like fishy tasting food."
修剪前导和尾随空格:

P←"My     cat  doesn't like    fishy  tasting     food.   "
L←' '⍷' ',P
+/L∧~1⌽L
如果要在不删除多余空格的情况下修剪文本的开头和结尾,请执行以下操作:

1↓(L⍲1⌽L)/' ',P
((∧\L)⍱⌽∧\⌽L)/' ',P
但是,在最后一个示例中,没有必要添加前导空格。因此,如果您不需要出于任何其他原因计算
L
,这里有一个使用
L2
的替代方法:

L2←" "⍷P
((∧\L2)⍱⌽∧\⌽L2)/P
输出(与开头相同,但结尾的多余空格已消失):