• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

家庭作业解析字符串:从字符串中删除逗号(java zybooks)

java 来源:Shauna Lindsey Olson 5次浏览

我想让字符串分开,而不是逗号。 我们还没有学过类似数组的东西,这是一个介绍类。 我在这里找到的所有东西只是不断给我错误或对zybooks中的代码无所作为。家庭作业解析字符串:从字符串中删除逗号(java zybooks)

import java.util.Scanner; 
public class ParseStrings { 
    public static void main(String[] args) { 



    Scanner scnr = new Scanner(System.in); // Input stream for standard input 
    Scanner inSS = null;     // Input string stream 
    String lineString = "";    // Holds line of text 
    String firstWord = "";     // First name 
    String secondWord = "";    // Last name 
    boolean inputDone = false;    // Flag to indicate next iteration 


    // Prompt user for input 
    System.out.println("Enter input string: "); 


    // Grab data as long as "Exit" is not entered 
    while (!inputDone) { 


     // Entire line into lineString 
     lineString = scnr.nextLine(); 


     inSS = new Scanner(lineString); 


     firstWord = inSS.next(); 

     lineString.split(","); 

     // Output parsed values 
     if (firstWord.equals("q")) { 
      System.out.println("Enter input string: "); 

      inputDone = true; 
     } 
      //This may be where I am messing up?? 
     else if (lineString.contains(",")) { 

      secondWord = inSS.next(); 


      System.out.println("First word: " + firstWord); 
      System.out.println("Second word: " + secondWord); 

      System.out.println(); 


     } else { 

      System.out.println("Error: No comma in string"); 
      System.out.println("Enter input string: "); 

     } 
    } 


    return; 
    } 
} 

我的地方搞乱了,并不断收到不同的错误代码,因为我跟上它搞乱……

“输入输入字符串:
第一个字:小杰,
第二个字:艾伦”

当它应该是

“输入输入字符串:
第一个字:吉尔
第二个字:艾伦”

然后还作为计算机进入更多的数据,我开始收到此消息:

“线程中的异常”main java.util.NoSuchElementException“
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Sca nner.next(Scanner.java:1371)
在ParseStrings.main(ParseStrings.java:44)”


===========解决方案如下:

可能性之一(如果你没有了解阵列)是使用StringBuilder和删除逗号或简单地循环输入字符串,如果字符在我们说的索引8是逗号,你做yourString.substring(0,8);,然后打印第二个字作为yourString.substring(10,yourstring.length);我在第二个子字符串中放置了起始索引10,因为您想跳过逗号和分隔名和姓的空格。下面是代码示例使用无非是String类,它的方法和循环:

package com.company; 

import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 
     System.out.print("Enter first name and last name: "); 
     String str = in.nextLine(); 

     int indexOfComma = 0; 

     for (int i = 0; i < str.length(); i++) { 
      if (str.charAt(i) == ',') 
       indexOfComma = i; 
     } 

     System.out.println("First name is: " + (str.substring(0, indexOfComma))); 
     System.out.println("Last name is: " + (str.substring(indexOfComma + 2, str.length()))); 

    } 
} 

或者像我看你尝试使用分裂()(但既然你说你没有学到阵列但我张贴上述方案),你可以用.split()这样做:

package com.company; 

import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 
     System.out.print("Enter first name and last name: "); 
     String[] name = in.nextLine().split(", "); 

     System.out.println("First name is: " + name[0]); 
     System.out.println("Last name is: " + name[1]); 

    } 
} 

而且,这里是StringBuilder类的例子:

package com.company; 

import java.util.Scanner; 

public class Main { 

    public static void main(String[] args) { 

     Scanner in = new Scanner(System.in); 
     System.out.print("Enter first name and last name: "); 
     StringBuilder name = new StringBuilder(in.nextLine()); 

     name.deleteCharAt(name.indexOf(",")); 

     System.out.println("Full name is: " + name); 

    } 
} 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)