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

我想让字符串分开,而不是逗号。 我们还没有学过类似数组的东西,这是一个介绍类。 我在这里找到的所有东西只是不断给我错误或对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);

}

}

回答:

所以,让我们采取最低限度的措施。 我们需要为此使用一些Java额外的库(如扫描仪):

我们需要一个arrayList,因为我们不知道我们要将字符串拆分成多少个元素。

我们需要一个数组从String接口到ArrayList<String>

import java.util.ArrayList; 

import java.util.Arrays;

import java.util.Scanner;

public class Main

{

public static void main(String[] args)

{

Scanner scan = new Scanner(System.in);

//Get the inputs:

System.out.println("Enter a String: ");

String one = scan.nextLine();

System.out.println("Enter a second String: ");

String two = scan.nextLine();

//Concatenate (join up) the two inputs with a `,` delimeter

String three = one + "," + two;

// Now we split up the entire thing based on a separator of `,`:

ArrayList<String> parts = new ArrayList<>(Arrays.asList(three.split(",")));

//Print every word we separated:

for(String s: parts) {

System.out.println(s);

}

//System.out.println(parts.get(0));

}

}

你用,分离这将打印出每个单词,并会删除逗号表示(,)。

希望这有助于。

回答:

当扫描器读取所有的数据,如调用nextLine方法,而且也没有行...或下一个方法时,你没有把空格,逗号

后,默认情况下你的错误发生时,扫描仪使用空格作为分隔符。如果你想要的任何空格前加一个逗号分隔符,你可以试试这个

Scanner sc=new Scanner(System.in); 

sc.useDelimiter(",?\\s+");

现在,sc.next()将宣读Hello, WorldHello,并给它的第二个电话应该返回World

或者你可以使用数组所做

String[] words = lineString.split(","); 

String first = words[0]:

String second = words[1];

以上是 家庭作业解析字符串:从字符串中删除逗号(java zybooks) 的全部内容, 来源链接: utcz.com/qa/259121.html

回到顶部