how to split a string
28 ビュー (過去 30 日間)
古いコメントを表示
i need to create a function named breakline which inputs a string (char, 1 × N) and a linewidth (integer, scalar). The function then splits the string into smaller strings which are smaller than the linewidth.
The output to the function is an array which contains all of the split up lines (cell array, 1 × M).
for example
out=breakupLine(’123456789’,4)
out =
{
[1,1] = ’1234’
[1,2] = ’5678’
[1,3] = ’9’
}
1 件のコメント
Walter Roberson
2020 年 3 月 28 日
It is not possible to get the output in exactly that format. The initial part showing the index can only appear if you create the output as all one character vector, contradicting the requirement that it be a cell array.
回答 (4 件)
Walter Roberson
2020 年 3 月 28 日
If the current vector is shorter than N or exactly N then add the complete current vector to the end of the cell array and return. Otherwise index the first N characters from the current vector and add them to the end of the cell array, and remove N characters from the beginning of the current vector overwriting the current vector and loop back.
2 件のコメント
Walter Roberson
2020 年 3 月 29 日
ThisRow = RemainingLetters(1:4);
RemainingLetters = RemainingLetters(5:end);
Nik Niki
2022 年 5 月 22 日
編集済み: Image Analyst
2022 年 5 月 22 日
test_data_name="kjashfk, kjasdklasdfas, 3";
test_data_name = split(test_data_name)
0 件のコメント
Image Analyst
2022 年 5 月 22 日
Here is one way:
out=breakupLine('123456789', 4)
%=====================================================
function out=breakupLine(str, substringLength)
stringLength = length(str);
loopCounter = 1;
for k = 1 : substringLength : stringLength
index1 = k;
index2 = min(k + substringLength - 1, stringLength);
out{loopCounter} = str(index1 : index2);
loopCounter = loopCounter + 1;
end
end
0 件のコメント
DGM
2022 年 5 月 22 日
To address the OP's particular request:
linew = 4;
teststr = '123456789';
excess = rem(numel(teststr),linew);
output = reshape(teststr(1:end-excess),linew,[]).';
output = [num2cell(output,2); teststr(end-excess+1:end)]
I don't know that this is particularly efficient, but it works. It may have advantages at some scale, but I haven't tested that.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!