2017-02-04 124 views
1

我正在做家庭作业,无法在我的在线教科书或其他任何地方找到答案。如何解析Java中的字符串?

我的家庭作业的问题是四个部分:

  1. 提示用户输入一个包含用逗号分隔的两个字符串的字符串。

  2. 如果输入字符串不包含逗号,则报告错误。继续提示,直到输入有效的字符串。注意:如果输入包含逗号,则假定输入也包含两个字符串。

  3. 从输入字符串中提取两个单词并删除所有空格。将字符串存储在两个单独的变量中并输出字符串。

  4. 使用循环,扩展程序来处理多行输入。继续直到用户输入q退出。

 
Final outcome should print out as follows: 
Enter input string: Jill, Allen 
First word: Jill 
Second word: Allen 
 
Enter input string: Golden , Monkey 
First word: Golden 
Second word: Monkey 
 
Enter input string: Washington,DC 
First word: Washington 
Second word: DC 

输入输入字符串:Q

我的代码输出不正确。我不知道如何使自动,不显示在我的第一个字或显示为我的第二个字。我曾尝试使用 String [] array = s.split(",);,并且类程序无法识别此命令和错误。

这是我的代码:

import java.util.Scanner; 

public class ParseStrings { 
    public static void main(String[] args) { 
     Scanner scnr = new Scanner(System.in); 
     Scanner inSS = null;     
     String firstWord = " ";     
     String secondWord = ""; 
     String lineString = ""; 
     boolean inputDone = false; 

     while (!inputDone) { 
     lineString = scnr.nextLine(); 
     inSS = new Scanner(lineString); 
     firstWord = inSS.next(); 
     System.out.print("Enter input string: \n"); 


     if (firstWord.equals("q")){ 
      System.out.println("First word: " + firstWord); 
      inputDone = true; 
     } else { 
      secondWord = inSS.next(); 
      System.out.println("First word: " + firstWord); 
      System.out.println("Second word: " + secondWord); 
      System.out.println(); 
     } 
     } 


     return; 
    } 
} 

我如何可以编码此字符串包含和排除逗号,并打印出错误。我不明白我需要做什么。

+0

你还没有声明变量是's',java怎么能分割它? – paper1111

回答

1

我不想编写解决方案的代码。只要给你一些意见,让你自己得到正确的答案。毕竟这是你的锻炼。

  1. 你不需要使用两个Scanner就足够了。
  2. 检查的scnr.nextLine()
  3. 的字符串方法执行之后可变lineStringsplit通常有助于找出
+0

谢谢你的帮助,但我仍然不明白。我设法删除最后一个字符,所以逗号输入不是自动的,并添加一行输出错误消息。我也需要这个来循环更多的任务,所以我将不得不重新访问我的代码,因为它没有循环。 – rmac

0
import java.util.Scanner; 

public class ParseStrings { 
    public static void main(String[] args) { 
     Scanner scnr = new Scanner(System.in); 
     String userInput = ""; 
     boolean inputDone = false; 

     while (!inputDone) { 
     System.out.print("Enter input string: \n"); 
     userInput = scnr.nextLine() 


     if (userInput.equals("q")){ 
      System.out.println("First word: " + userInput); 
      inputDone = true; 
     } else { 
      String[] userArray = userInput.split(","); 
      System.out.println("First word: " + userArray[0]); 
      System.out.println("Second word: " + userArray[1]); 
      System.out.println(); 
     } 
     } 


     return; 
    } 
} 

说明: 首先,创建一个对象Scanner。然后,用户的输入被存储在userInput中。之后,java会检查用户是否输入了q,如果是,则结束应用程序。否则,java会将字符串分成两个单词然后打印出来。

请记住,理解代码是学习编程语言的一个非常重要的过程,因此请理解代码,而不是复制并粘贴它以提交作为您的功课。

+0

感谢您的详细信息。我看到我可以使用数组,然后添加以产生额外的错误:字符串中没有逗号。 – rmac

+0

@rmac希望这对你有所帮助!如果这是正确的答案,您可以点击左边的勾号 – paper1111