2014-09-01 99 views
-8

该程序分隔句子中的单词。请不要使用“分裂”方法,因为它不在我们学校的课程内。请回复没有意思。有没有更简单的方法来编写这个Java程序?

int length=0; 
    int x=sent.length(); 
    int a; 
    int b=0; 
    for(a=0;a<x;a++) 
    { 
     char z=sent.charAt(a); 
     if(z==' ') 
     { 
      String hell=sent.substring(b,a); 
      System.out.println(hell); 
      b=b+hell.length()+1; 
     } 
    } 
+0

我们如何知道你可以使用哪些方法,哪些是你不能。你可以写'b = a + 1;' – 2014-09-01 17:22:18

+0

什么是_sent_?一个字符串? – Nabin 2014-09-01 17:22:38

+0

什么是'长度'用于? – 2014-09-01 17:23:04

回答

0

可以使用的indexOf和子做:

int index= word.indexOf(" "); 
do{ 
    System.out.println(word.substring(0, index)); 
    word = word.substring(index + 1); 
    index = word.indexOf(" "); 
} while (index != -1); 
1

更简单的方法做,这是

for(char ch : sent.toCharArray()) { 
    if (ch == ' ') ch = '\n'; 
    System.out.print(ch); 
} 
+0

这是否适用于具有多个空格的短语? (我喜欢这个简单!) – therealrootuser 2014-09-01 17:27:23

+0

@ mattingly890它会做同样的事情,即产生一个空行。唯一的区别是它会打印一个尾随的单词,而如果没有后面跟一个空格,则OP的代码不会打印最后一个单词。 – 2014-09-01 17:28:36

2

我会亲自使用java.util.Scanner。如果这不在你学校的范围内,找一所新学校!

import java.util.Scanner; 

public class Example { 

    public static void main(String[] args) { 
     String sentence = "Hello world of overflowing stacks"; 

     Scanner sc = new Scanner(sentence); 
     while (sc.hasNext()) 
     { 
      System.out.println(sc.next()); 
     } 
    } 
} 

输出:

Hello 
world 
of 
overflowing 
stacks 
+0

java.util.Scanner在我们的范围内,但他们可以要求我们专门使用缓冲读取器,而不是在使用扫描器类时做这样的问题。印度学校,兄弟:P – raiGuy 2014-09-01 17:27:22

+0

我看不出有什么限制。您应该了解如何在开始将其视为理所当然之前实施“扫描仪”。如果所有学校都教你如何使用一堆罐装的代码片段(这就是标准库),但它并没有正确地教导你。 – 2014-09-01 17:43:12

+0

公平的观点,尽管相反的问题(我从开始的程序员也可以看到)是他们试图编写所有东西,而不知道如何有效地使用库(包括标准库)。我想这是一个平衡游戏。 – therealrootuser 2014-09-01 18:11:14

相关问题