私は、文字列を受け取り、デリミタをカンマにして2つの出力に解析するプログラムを作成しようとしています。ユーザーは文字「q」を入力するまでループします。.parse()を使わずにJavaで文字列を解析するには?
すなわち:コンソールは入力を入力するように促し、ユーザ入力「第一、第二」と、第2のプロンプトの「Q」出力は次のようになります
Enter input string:
First word: first
Second word: second
Enter input string:
にはコンマがない場合入力、それはエラーをスローし、再び
すなわちユーザ入力「第一、第二」と出力がされます求められます。以下は
Enter input string:
Error: No comma in string
Enter input string:
を私がこれまで持っているものです。
import java.util.Scanner;
public class ParseStrings {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in); // Scanner for standard input
Scanner inSS = null; // Scanner to write input to buffer
String firstWord = ""; // First word string
String secondWord = ""; // Second word string
String userInput = ""; // Input from prompt
int i = 0; // Loop iterator
boolean inputDone = false; // Boolean to repeat while loop
boolean hasComma = false; // Boolean to check for comma
// Do while inputDone is false
while (!inputDone) {
//Prompt user to input a string
System.out.println("Enter input string: ");
// Write string to userInput
userInput = scnr.nextLine();
// Exit program if user inputs q
if((userInput.equals("q"))) {
inputDone = true;
break;
}
else{
// Write userInput to buffer
inSS = new Scanner(userInput);
// Write first word from buffer
firstWord = inSS.next();
// Loop through first word string
for (i = 0; i < firstWord.length(); ++i) {
// If char is a comma, write everything after to secondWord and set inputDone to true
if(firstWord.charAt(i) == ',') {
secondWord = inSS.next();
hasComma = true;
}
}
// If hasComma is false, return error
if (!hasComma){
System.out.println("Error: No comma in string");
}
// Else print first word and second word
else {
System.out.println("First word: " + firstWord);
System.out.println("Second word: " + secondWord);
System.out.println("");
System.out.println("");
}
}
}
return;
}
}
問題:
- 最初の単語の間にスペースがある場合はスペースのそれエラー出
- が存在しない場合、私は、出力
- からカンマを削除する方法がわかりませんコンマの場合はfirstWordを書きますが、secondWordの前の値を上書きしません(または最初の入力の場合はエラー)
- 私は初心者のJavaコースを受講していますが、まだ.parse()メソッドをまだ使用していません、それは本当にそうではありませんこれはオプションです。
ありがとうございます!
を欲しがる、彼はコンマなどの区切り文字と文字列に2つの部分を持っていたと述べました。これはうまくいくはずです。あるいは、チェックの場合に別のものを追加し、複数のカンマを使用したことをユーザに知らせてもよい。 – Tharun
あなたの投稿への私の編集がその問題を処理したと思います。 'arr.length'に' == 'の代わりに'> = 'を追加してください。 –
私は条件の長さ== 2が正しいと思います。それを多くの部分に分割することができれば、問題の説明を考慮すると違反になります。 – Tharun