Java Scanner returning null but already filtered out
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 |
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 '18 at 16:00
add a comment |
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 '18 at 14:25


Clement Hui
31
31
... != "JP++ END"
-> How do I compare strings in Java?
– Pshemo
Nov 19 '18 at 16:00
add a comment |
... != "JP++ END"
-> How do I compare strings in Java?
– Pshemo
Nov 19 '18 at 16:00
... != "JP++ END"
-> How do I compare strings in Java?– Pshemo
Nov 19 '18 at 16:00
... != "JP++ END"
-> How do I compare strings in Java?– Pshemo
Nov 19 '18 at 16:00
add a comment |
1 Answer
1
active
oldest
votes
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 '18 at 12:34
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
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
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
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 '18 at 12:34
add a comment |
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 '18 at 12:34
add a comment |
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 '18 at 16:08
answered Nov 19 '18 at 14:55
John Kim
413211
413211
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 '18 at 12:34
add a comment |
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 '18 at 12:34
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 '18 at 12:34
Thank you very much. Many thanks on your help
– Clement Hui
Nov 20 '18 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 '18 at 16:00