java - S1 contains s2 with regex -


here problem: have 2 strings s1 , s2 input , need find initial position of s2 in s1. s2 has * character in in regex stands *+.

example:

s1: "abcabcqmapcab" s2: "cq*pc" 

the output shoud be: 5.

this code:

import java.util.*;  public class usoapibis {      /* need find initial position of s2 in s1.      s2 contains * stands characters frequency. */      public static void main(string[] args) {         scanner scan = new scanner(system.in);         system.out.print("string1: ");         string s1 = scan.next();         system.out.print("string2: ");         string s2 = scan.next();         //it replace star regex ".*" means char 0 or more more times.         s2 = s2.replaceall("\\*", ".*");         system.out.printf("the starting position of %s in %s in %d", s2, s1, poscontains);     }      //it has return index of initial position of s2 in s1     public static int indexcontains(string s1, string s2) {         if (s1.matches(".*"+s2+".*")) {             //return index of match;         }         else {             return -1;         }     } } 

i think mean * in given string should represent .+ or .* , not *+. . character in regex means "any character", + means "one or more times" , * means "zero or more times" (greedily).

in case, can use this:

public class example {      public static void main(string[] args) {          string s1 = "abcabcqmapcab";         string s2 = "cq*pc";          string pattern = s2.replaceall("\\*", ".+"); // or ".*"         matcher m = pattern.compile(pattern).matcher(s1);         if (m.find())             system.out.println(m.start());     } } 

output:

5 

Comments

Popular posts from this blog

angularjs - ADAL JS Angular- WebAPI add a new role claim to the token -

php - CakePHP HttpSockets send array of paramms -

node.js - Using Node without global install -