7
A
回答
21
因此,使用字符串
str='the rain in spain falls mainly on the plain.'
只需使用Matlab中的正則表達式替換功能,regexprep
regexprep(str,'(\<[a-z])','${upper($1)}')
ans =
The Rain In Spain Falls Mainly On The Plain.
的\<[a-z]
每個單詞的第一個字符相匹配,您可以轉換使用${upper($1)}
大寫
這也可以使用\<\w
來匹配每個單詞開頭的字符。
1
負載:
str = 'the rain in Spain falls mainly on the plane'
spaceInd = strfind(str, ' '); % assume a word is preceded by a space
startWordInd = spaceInd+1; % words start 1 char after a space
startWordInd = [1, startWordInd]; % manually add the first word
capsStr = upper(str);
newStr = str;
newStr(startWordInd) = capsStr(startWordInd)
更多優雅/複雜 - 單元陣列,textscan和cellfun對於這種事情非常有用:
str = 'the rain in Spain falls mainly on the plane'
function newStr = capitals(str)
words = textscan(str,'%s','delimiter',' '); % assume a word is preceded by a space
words = words{1};
newWords = cellfun(@my_fun_that_capitalizes, words, 'UniformOutput', false);
newStr = [newWords{:}];
function wOut = my_fun_that_capitalizes(wIn)
wOut = [wIn ' ']; % add the space back that we used to split upon
if numel(wIn)>1
wOut(1) = upper(wIn(1));
end
end
end
2
由於Matlab自帶的build in Perl,對於每一個複雜的字符串或文件處理任務都可以使用Perl腳本。所以,你也許可以用這樣的:
[result, status] = perl('capitalize.pl','the rain in Spain falls mainly on the plane')
其中capitalize.pl是一個Perl腳本如下:
$input = $ARGV[0];
$input =~ s/([\w']+)/\u\L$1/g;
print $input;
Perl代碼從this堆棧溢出問題被採取。
1
str='the rain in spain falls mainly on the plain.' ;
for i=1:length(str)
if str(i)>='a' && str(i)<='z'
if i==1 || str(i-1)==' '
str(i)=char(str(i)-32); % 32 is the ascii distance between uppercase letters and its lowercase equivalents
end
end
end
少ellegant高效,更易讀和可維護性。
相關問題
- 1. 首字母大寫的字符串首字母大寫
- 2. 字符串的首字母大寫
- 3. 首字母大寫從MySQL與PHP/jQuery拉的每個單詞的首字母
- 4. 在windows phone上字符串中的每個單詞的首字母大寫
- 5. 首字母大寫
- 6. 大寫首字母
- 7. 在vim中選擇每個單詞的首字母大寫
- 8. 僅字符串首字母大寫java
- 9. 在Drupal 7中輸入每個單詞的首字母大寫字母
- 10. 爲字符串中的每個單詞首字母大寫。本地化問題
- 11. CKeditor中首字母大寫首字母縮寫
- 12. MySQL中每個單詞(utf8)的大寫首字母
- 13. 將列中每個單詞的首字母大寫Python
- 14. 如何自動大寫C#中每個單詞的首字母?
- 15. 每個句子的首字母大寫
- 16. 大寫首字母的姓
- 17. 將字符串中的第一個字符大寫首字母大寫
- 18. 首字母大寫的字符
- 19. 使用增強庫大寫句子中每個單詞的首字母大寫
- 20. MySQL - 每個單詞的首字母大寫
- 21. 返回每個單詞的首字母大寫
- 22. Titanium - TextField鍵盤類型爲單詞首字母大寫字母
- 23. 首字母應大寫?
- 24. 首字母大寫。 MySQL
- 25. 大寫首字母只
- 26. 作首字母大寫
- 27. SQL:僅首字母大寫
- 28. 用大寫字母填滿句子中的每個單詞的首字母大寫
- 29. python首字母大寫只有大寫
- 30. 使用javascript大寫首字母大寫
是否可以接受其中一個答案,謝謝。 – Morgan 2014-12-08 10:06:35