Java Scanner returning null but already filtered out
up vote
0
down vote
favorite
public void process() throws InputMismatchException {
//System.out.println(code);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ){
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
}
This code is a part of a lexer I am currently working on. I already filtered out to prevent the scanner from outputting null and it still output:
hello
world
null
my input: " JP++ HELLO WORLD START n hello n worldn JP++ END"
How can I solve this thx
java lexer
add a comment |
up vote
0
down vote
favorite
public void process() throws InputMismatchException {
//System.out.println(code);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ){
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
}
This code is a part of a lexer I am currently working on. I already filtered out to prevent the scanner from outputting null and it still output:
hello
world
null
my input: " JP++ HELLO WORLD START n hello n worldn JP++ END"
How can I solve this thx
java lexer
... != "JP++ END"
-> How do I compare strings in Java?
– Pshemo
Nov 19 at 16:00
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
public void process() throws InputMismatchException {
//System.out.println(code);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ){
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
}
This code is a part of a lexer I am currently working on. I already filtered out to prevent the scanner from outputting null and it still output:
hello
world
null
my input: " JP++ HELLO WORLD START n hello n worldn JP++ END"
How can I solve this thx
java lexer
public void process() throws InputMismatchException {
//System.out.println(code);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ){
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
}
This code is a part of a lexer I am currently working on. I already filtered out to prevent the scanner from outputting null and it still output:
hello
world
null
my input: " JP++ HELLO WORLD START n hello n worldn JP++ END"
How can I solve this thx
java lexer
java lexer
asked Nov 19 at 14:25
Clement Hui
31
31
... != "JP++ END"
-> How do I compare strings in Java?
– Pshemo
Nov 19 at 16:00
add a comment |
... != "JP++ END"
-> How do I compare strings in Java?
– Pshemo
Nov 19 at 16:00
... != "JP++ END"
-> How do I compare strings in Java?– Pshemo
Nov 19 at 16:00
... != "JP++ END"
-> How do I compare strings in Java?– Pshemo
Nov 19 at 16:00
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
I just tested this code :
String input = " JP++ HELLO WORLD START n hello n worldn JP++ END";
Scanner sc = new Scanner(input);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ) {
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
Which is literally a copy and paste of your code except for the input (which I also literally copied from your post) and Scanner declaration. It prints out
hello
world
with no null. Whatever your issue is it is elsewhere.
Edit : As @Pshemo mentions you are also comparing your string wrong. Use .equals()
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 at 12:34
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
I just tested this code :
String input = " JP++ HELLO WORLD START n hello n worldn JP++ END";
Scanner sc = new Scanner(input);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ) {
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
Which is literally a copy and paste of your code except for the input (which I also literally copied from your post) and Scanner declaration. It prints out
hello
world
with no null. Whatever your issue is it is elsewhere.
Edit : As @Pshemo mentions you are also comparing your string wrong. Use .equals()
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 at 12:34
add a comment |
up vote
0
down vote
accepted
I just tested this code :
String input = " JP++ HELLO WORLD START n hello n worldn JP++ END";
Scanner sc = new Scanner(input);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ) {
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
Which is literally a copy and paste of your code except for the input (which I also literally copied from your post) and Scanner declaration. It prints out
hello
world
with no null. Whatever your issue is it is elsewhere.
Edit : As @Pshemo mentions you are also comparing your string wrong. Use .equals()
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 at 12:34
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
I just tested this code :
String input = " JP++ HELLO WORLD START n hello n worldn JP++ END";
Scanner sc = new Scanner(input);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ) {
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
Which is literally a copy and paste of your code except for the input (which I also literally copied from your post) and Scanner declaration. It prints out
hello
world
with no null. Whatever your issue is it is elsewhere.
Edit : As @Pshemo mentions you are also comparing your string wrong. Use .equals()
I just tested this code :
String input = " JP++ HELLO WORLD START n hello n worldn JP++ END";
Scanner sc = new Scanner(input);
if(sc.findInLine("JP++") == null || sc.findInLine("START") == null){
throw new RuntimeException("Program has to start with 'JP++ _NAME_ START' ");
}
sc.nextLine();
while(sc.hasNext()){
if (sc.findInLine(Pattern.compile("JP......")) != "JP++ END" ) {
Scanner r = sc;
if(!r.hasNextLine() || r.findInLine(Pattern.compile(".")) == null){
return;
}
System.out.println(sc.nextLine());
}
}
Which is literally a copy and paste of your code except for the input (which I also literally copied from your post) and Scanner declaration. It prints out
hello
world
with no null. Whatever your issue is it is elsewhere.
Edit : As @Pshemo mentions you are also comparing your string wrong. Use .equals()
edited Nov 19 at 16:08
answered Nov 19 at 14:55
John Kim
398211
398211
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 at 12:34
add a comment |
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 at 12:34
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 at 12:34
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 at 12:34
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53376697%2fjava-scanner-returning-null-but-already-filtered-out%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
... != "JP++ END"
-> How do I compare strings in Java?– Pshemo
Nov 19 at 16:00