如果是全英文,用BreakIterator:import java.text.BreakIterator; import java.util.Locale;public class BreakIteratorTest { public static void main(String args[]) { //if (args.length == 1) { //String stringToExamine = args[0]; String s = "The BreakIterator class implements methods for finding the location of"; //print each word in order BreakIterator boundary = BreakIterator.getWordInstance(); boundary.setText(s); int start = boundary.first(); for (int end = boundary.next(); end != BreakIterator.DONE; start = end, end = boundary.next()) System.out.println(s.substring(start, end)); } } }
然后判断数组长度
这个好像要快些,不过没测试过
import java.util.Locale;public class BreakIteratorTest
{
public static void main(String args[])
{
//if (args.length == 1)
{
//String stringToExamine = args[0];
String s = "The BreakIterator class implements methods for finding the location of";
//print each word in order
BreakIterator boundary = BreakIterator.getWordInstance();
boundary.setText(s);
int start = boundary.first();
for (int end = boundary.next(); end != BreakIterator.DONE; start = end, end = boundary.next())
System.out.println(s.substring(start, end));
}
}
}
String n;
String s=in.readLine();
StringTokenizer t=new StringTokenizer(s," ");
num=t.countTokens();
String sArry[];
sArry=s.split(" ");
int count;
for(int i=0;i<sArry.length;i++)
{
if(sArry[i]!="")
count++;
}
System.out.println(count);