首页 > 代码库 > Length of Last Word

Length of Last Word

Given a string s consists of upper/lower-case alphabets and empty space characters ‘ ‘, return the length of last word in the string.

If the last word does not exist, return 0.

Note: A word is defined as a character sequence consists of non-space characters only.

For example, 
Given s = "Hello World",
return 5.

这题还是比较容易的,用正则表达式感觉更简单一点,代码如下:

import java.util.regex.*;public class Solution {    public int lengthOfLastWord(String s) {        ArrayList<String> word_list = new ArrayList<String>();        Pattern p = Pattern.compile("\\w+");//匹配正则表达式        Matcher m = p.matcher(s);        while(m.find()){            word_list.add(m.group());        }        int size = word_list.size();        //size==0表示没有找到任何单词        if(size==0){            return 0;        }        return word_list.get(size-1).length();    }}

 不用正则表达式代码:

public class Solution {    public int lengthOfLastWord(String s) {       if(s.length()==0){           return 0;       }       char[] array = s.toCharArray();       int size = array.length;       ArrayList<String> list = new ArrayList<String>();       String word = "";//临时存储一个单词       int flag = 0;//flag==1时表示当前正在记录一个单词       for(int i=0;i<size;i++){           if(array[i]!=‘ ‘){              word = word+array[i];              flag = 1;//修改flag表示当前开始记录一个单词           }           //如果遇到空格或者循环结束则将flag置0,表示当前单词记录结束           if(array[i]==‘ ‘||i==size-1){               flag = 0;           }           //如果word非空并且flag==0则表示一个单词记录完毕并将其存入list中,同时word置空           if(!word.isEmpty()&&flag==0){               list.add(word);               word = "";           }       }       if(list.isEmpty()){           return 0;       }       return list.get(list.size()-1).length();    }}

 

Length of Last Word