2016-10-16 3 views
0

Я ищу код, чтобы найти последнее слово в строке в виде lastWord (линия) так, например,функции MATLAB, чтобы найти последнее слово в строке

line = 'hi how are you' 
ans = 'you' 

line = 'dog' 
ans = 'dog' 

Я получил это код до сих пор:

function finalword = lastWord(line) 
    a = strfind(line, ''); 
    if ~strfind(line, '') 
    finalword = line; 
    return; 
    end 
    lastSpacePlace = a(length(a)); 
    finalwordFirstIndex = lastSpacePlace + 1; 
    finalword = line(finalwordFirstIndex:finalwordLastIndex); 
end 

, но я получаю сообщение об ошибке при lastSpacePlace = а (длина (а)), и я не знаю, почему. Любая помощь очень ценится!

Редактирование: хорошо, поэтому я пересмотрел свой код и закончил с этим: function last = lastWord (строка) allSpaces = findstr ('', line); k = длина (allSpaces); last = line (allSpace (k-1): allSpaces (k) -1); конец

и я все время получаю сообщение об ошибке в строке (4) по какой-либо причине, когда я ввожу какую-либо фразу. пожалуйста, мне нужна помощь о том, где я буду неправильно

ответ

0

возможное решение:

line = 'hi how are you' 
line(find(line==' ',1,'last')+1:end) 

последнее место нашли и с этого момента и до конца является последним словом.

0

Прежде всего, непонятно, какова непосредственная проблема с вашим кодом, так как вы не предоставили нам все сообщение об ошибке. Но одной непосредственной проблемой является то, что вы никогда не найдете пробелы с strfind, потому что вы используете пустую строку '', а не пробел (' ').

Это, как говорится, я бы просто использовал strsplit, чтобы разбить вход в массив ячеек и затем вернуть последнее слово.

parts = strsplit(line); 
last_word = parts{end}; 

Еще один хороший вариант - использовать регулярные выражения для захвата последнего слова. Следующее выражение соответствует всем непространственным символам, находящимся в конце строки.

last_word = regexp(line, '\<\w+$', 'match', 'once'); 
+0

ОК, я переработал код и получил следующее: – henberry

+0

@henberry Не похоже, что вы пробовали мои предложения. Как насчет того, чтобы попробовать эти – Suever

Смежные вопросы