Combinational string search using Java Announcing the arrival of Valued Associate #679: Cesar...

Windows 10: How to Lock (not sleep) laptop on lid close?

Problem when applying foreach loop

How to colour the US map with Yellow, Green, Red and Blue to minimize the number of states with the colour of Green

What items from the Roman-age tech-level could be used to deter all creatures from entering a small area?

Can smartphones with the same camera sensor have different image quality?

Simulating Exploding Dice

Complexity of many constant time steps with occasional logarithmic steps

Why does this iterative way of solving of equation work?

Active filter with series inductor and resistor - do these exist?

Did the new image of black hole confirm the general theory of relativity?

New Order #5: where Fibonacci and Beatty meet at Wythoff

Why use gamma over alpha radiation?

Aligning matrix of nodes with grid

What is the largest species of polychaete?

Who can trigger ship-wide alerts in Star Trek?

Strange behaviour of Check

What is the electric potential inside a point charge?

Do working physicists consider Newtonian mechanics to be "falsified"?

How are presidential pardons supposed to be used?

Does a C shift expression have unsigned type? Why would Splint warn about a right-shift?

Determine whether f is a function, an injection, a surjection

Classification of bundles, Postnikov towers, obstruction theory, local coefficients

How to rotate it perfectly?

Stop battery usage [Ubuntu 18]



Combinational string search using Java



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Using Levenstein distance to compare stringsBalanced parenthesesMatch Simple Sentence or Partial SentenceFinding the shortest substring containing keywordsWildcard string search with captureTrinary Search TreeFind the first unique character in a stringDid you twist my words?Effective way to find two string are anagramsCheck if a string is a valid english word, and convert to a valid english word





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







1












$begingroup$


I wrote a program that receives 2 strings (Input and Search) in the Search string. The sign '+' indicates that if the substring before the '+' exists in the Input string. (The search string cannot start with '+' and there cannot be a '+' followed by another '+').



Can you review it for best coding practices and efficiency?



boolean notgood = false;
boolean break1 = false;
boolean break2 = false;
int counter = 0;

if (search.charAt(0)=='+'||search.charAt(0)=='*') {

System.out.println("Invalid search striNG.");
continue;
}
//////////////////////////////////////////////
for (i=0; i<search.length() && notgood==false; i++) {

if (search.charAt(i)!='*' && search.charAt(i)!='+') {
counter++;
}
if (counter == search.length()) {
System.out.println("Invalid SEARCH string.");
notgood=true;
break;
}

if ((search.charAt(i)=='*')||(search.charAt(i)=='+')) {

if (i!=search.length()-1) {


if ((search.charAt(i+1)=='*')||(search.charAt(i+1)=='+')) {

System.out.println("INvalid search string.");
notgood=true;
break1=true;
}
}
}
}
////////////////////////////////////////////
for (i=0; i<search.length() && !break1; i++) {

int c=0;

if (search.charAt(i)=='+') {

String word = search.substring(0,i);

for (int j=0; j<input.length() && !break2; j++) {

if ((input.charAt(j) == word.charAt(c)) && c<word.length()) {
c++;
}
if (c>=word.length()) {

System.out.println("Search string matches input string.");
break1=true;
break2=true;

}
}
if (c<word.length()) {
System.out.println("Search string doesn't match input string.");
}
}


For example, for Input = 'abcd' and Search = 'ab+cd+', the result should be the strings match.










share|improve this question









New contributor




Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$








  • 1




    $begingroup$
    Request for clarification: does ab+cd+ indicate that the two substring which should be present are “ab” and “cd” or is it everything to the left of the +, thus “ab” and “abcd” should be contained? In other words, does the filter “to the left of +” stop when it encounters another plus?
    $endgroup$
    – DapperDan
    5 hours ago












  • $begingroup$
    I also noticed you check in the beginning for “*”. What does this character mean in the context of your program?
    $endgroup$
    – DapperDan
    5 hours ago






  • 1




    $begingroup$
    Welcome to Code Review! Please read the article on How to write a good question in the Help Center. Update the title of your question after reading. Additionally, fix your code so that it's complete, runnable and working.
    $endgroup$
    – Alex
    4 hours ago


















1












$begingroup$


I wrote a program that receives 2 strings (Input and Search) in the Search string. The sign '+' indicates that if the substring before the '+' exists in the Input string. (The search string cannot start with '+' and there cannot be a '+' followed by another '+').



Can you review it for best coding practices and efficiency?



boolean notgood = false;
boolean break1 = false;
boolean break2 = false;
int counter = 0;

if (search.charAt(0)=='+'||search.charAt(0)=='*') {

System.out.println("Invalid search striNG.");
continue;
}
//////////////////////////////////////////////
for (i=0; i<search.length() && notgood==false; i++) {

if (search.charAt(i)!='*' && search.charAt(i)!='+') {
counter++;
}
if (counter == search.length()) {
System.out.println("Invalid SEARCH string.");
notgood=true;
break;
}

if ((search.charAt(i)=='*')||(search.charAt(i)=='+')) {

if (i!=search.length()-1) {


if ((search.charAt(i+1)=='*')||(search.charAt(i+1)=='+')) {

System.out.println("INvalid search string.");
notgood=true;
break1=true;
}
}
}
}
////////////////////////////////////////////
for (i=0; i<search.length() && !break1; i++) {

int c=0;

if (search.charAt(i)=='+') {

String word = search.substring(0,i);

for (int j=0; j<input.length() && !break2; j++) {

if ((input.charAt(j) == word.charAt(c)) && c<word.length()) {
c++;
}
if (c>=word.length()) {

System.out.println("Search string matches input string.");
break1=true;
break2=true;

}
}
if (c<word.length()) {
System.out.println("Search string doesn't match input string.");
}
}


For example, for Input = 'abcd' and Search = 'ab+cd+', the result should be the strings match.










share|improve this question









New contributor




Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$








  • 1




    $begingroup$
    Request for clarification: does ab+cd+ indicate that the two substring which should be present are “ab” and “cd” or is it everything to the left of the +, thus “ab” and “abcd” should be contained? In other words, does the filter “to the left of +” stop when it encounters another plus?
    $endgroup$
    – DapperDan
    5 hours ago












  • $begingroup$
    I also noticed you check in the beginning for “*”. What does this character mean in the context of your program?
    $endgroup$
    – DapperDan
    5 hours ago






  • 1




    $begingroup$
    Welcome to Code Review! Please read the article on How to write a good question in the Help Center. Update the title of your question after reading. Additionally, fix your code so that it's complete, runnable and working.
    $endgroup$
    – Alex
    4 hours ago














1












1








1





$begingroup$


I wrote a program that receives 2 strings (Input and Search) in the Search string. The sign '+' indicates that if the substring before the '+' exists in the Input string. (The search string cannot start with '+' and there cannot be a '+' followed by another '+').



Can you review it for best coding practices and efficiency?



boolean notgood = false;
boolean break1 = false;
boolean break2 = false;
int counter = 0;

if (search.charAt(0)=='+'||search.charAt(0)=='*') {

System.out.println("Invalid search striNG.");
continue;
}
//////////////////////////////////////////////
for (i=0; i<search.length() && notgood==false; i++) {

if (search.charAt(i)!='*' && search.charAt(i)!='+') {
counter++;
}
if (counter == search.length()) {
System.out.println("Invalid SEARCH string.");
notgood=true;
break;
}

if ((search.charAt(i)=='*')||(search.charAt(i)=='+')) {

if (i!=search.length()-1) {


if ((search.charAt(i+1)=='*')||(search.charAt(i+1)=='+')) {

System.out.println("INvalid search string.");
notgood=true;
break1=true;
}
}
}
}
////////////////////////////////////////////
for (i=0; i<search.length() && !break1; i++) {

int c=0;

if (search.charAt(i)=='+') {

String word = search.substring(0,i);

for (int j=0; j<input.length() && !break2; j++) {

if ((input.charAt(j) == word.charAt(c)) && c<word.length()) {
c++;
}
if (c>=word.length()) {

System.out.println("Search string matches input string.");
break1=true;
break2=true;

}
}
if (c<word.length()) {
System.out.println("Search string doesn't match input string.");
}
}


For example, for Input = 'abcd' and Search = 'ab+cd+', the result should be the strings match.










share|improve this question









New contributor




Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$




I wrote a program that receives 2 strings (Input and Search) in the Search string. The sign '+' indicates that if the substring before the '+' exists in the Input string. (The search string cannot start with '+' and there cannot be a '+' followed by another '+').



Can you review it for best coding practices and efficiency?



boolean notgood = false;
boolean break1 = false;
boolean break2 = false;
int counter = 0;

if (search.charAt(0)=='+'||search.charAt(0)=='*') {

System.out.println("Invalid search striNG.");
continue;
}
//////////////////////////////////////////////
for (i=0; i<search.length() && notgood==false; i++) {

if (search.charAt(i)!='*' && search.charAt(i)!='+') {
counter++;
}
if (counter == search.length()) {
System.out.println("Invalid SEARCH string.");
notgood=true;
break;
}

if ((search.charAt(i)=='*')||(search.charAt(i)=='+')) {

if (i!=search.length()-1) {


if ((search.charAt(i+1)=='*')||(search.charAt(i+1)=='+')) {

System.out.println("INvalid search string.");
notgood=true;
break1=true;
}
}
}
}
////////////////////////////////////////////
for (i=0; i<search.length() && !break1; i++) {

int c=0;

if (search.charAt(i)=='+') {

String word = search.substring(0,i);

for (int j=0; j<input.length() && !break2; j++) {

if ((input.charAt(j) == word.charAt(c)) && c<word.length()) {
c++;
}
if (c>=word.length()) {

System.out.println("Search string matches input string.");
break1=true;
break2=true;

}
}
if (c<word.length()) {
System.out.println("Search string doesn't match input string.");
}
}


For example, for Input = 'abcd' and Search = 'ab+cd+', the result should be the strings match.







java beginner strings search






share|improve this question









New contributor




Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 5 mins ago









Emma

2041215




2041215






New contributor




Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 5 hours ago









Lior RozLior Roz

61




61




New contributor




Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Lior Roz is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 1




    $begingroup$
    Request for clarification: does ab+cd+ indicate that the two substring which should be present are “ab” and “cd” or is it everything to the left of the +, thus “ab” and “abcd” should be contained? In other words, does the filter “to the left of +” stop when it encounters another plus?
    $endgroup$
    – DapperDan
    5 hours ago












  • $begingroup$
    I also noticed you check in the beginning for “*”. What does this character mean in the context of your program?
    $endgroup$
    – DapperDan
    5 hours ago






  • 1




    $begingroup$
    Welcome to Code Review! Please read the article on How to write a good question in the Help Center. Update the title of your question after reading. Additionally, fix your code so that it's complete, runnable and working.
    $endgroup$
    – Alex
    4 hours ago














  • 1




    $begingroup$
    Request for clarification: does ab+cd+ indicate that the two substring which should be present are “ab” and “cd” or is it everything to the left of the +, thus “ab” and “abcd” should be contained? In other words, does the filter “to the left of +” stop when it encounters another plus?
    $endgroup$
    – DapperDan
    5 hours ago












  • $begingroup$
    I also noticed you check in the beginning for “*”. What does this character mean in the context of your program?
    $endgroup$
    – DapperDan
    5 hours ago






  • 1




    $begingroup$
    Welcome to Code Review! Please read the article on How to write a good question in the Help Center. Update the title of your question after reading. Additionally, fix your code so that it's complete, runnable and working.
    $endgroup$
    – Alex
    4 hours ago








1




1




$begingroup$
Request for clarification: does ab+cd+ indicate that the two substring which should be present are “ab” and “cd” or is it everything to the left of the +, thus “ab” and “abcd” should be contained? In other words, does the filter “to the left of +” stop when it encounters another plus?
$endgroup$
– DapperDan
5 hours ago






$begingroup$
Request for clarification: does ab+cd+ indicate that the two substring which should be present are “ab” and “cd” or is it everything to the left of the +, thus “ab” and “abcd” should be contained? In other words, does the filter “to the left of +” stop when it encounters another plus?
$endgroup$
– DapperDan
5 hours ago














$begingroup$
I also noticed you check in the beginning for “*”. What does this character mean in the context of your program?
$endgroup$
– DapperDan
5 hours ago




$begingroup$
I also noticed you check in the beginning for “*”. What does this character mean in the context of your program?
$endgroup$
– DapperDan
5 hours ago




1




1




$begingroup$
Welcome to Code Review! Please read the article on How to write a good question in the Help Center. Update the title of your question after reading. Additionally, fix your code so that it's complete, runnable and working.
$endgroup$
– Alex
4 hours ago




$begingroup$
Welcome to Code Review! Please read the article on How to write a good question in the Help Center. Update the title of your question after reading. Additionally, fix your code so that it's complete, runnable and working.
$endgroup$
– Alex
4 hours ago










0






active

oldest

votes












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: "196"
};
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: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
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
});


}
});






Lior Roz is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217453%2fcombinational-string-search-using-java%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes








Lior Roz is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















Lior Roz is a new contributor. Be nice, and check out our Code of Conduct.













Lior Roz is a new contributor. Be nice, and check out our Code of Conduct.












Lior Roz is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Code Review Stack Exchange!


  • 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.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217453%2fcombinational-string-search-using-java%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

Webac Holding Inhaltsverzeichnis Geschichte | Organisationsstruktur | Tochterfirmen |...

What's the meaning of a knight fighting a snail in medieval book illustrations?What is the meaning of a glove...

Salamanca Inhaltsverzeichnis Lage und Klima | Bevölkerungsentwicklung | Geschichte | Kultur und...