Skip to main content

Write method to replace all spaces in a string with '%20'.

File1: StringRoutines.java
-----------------------------------------------------------------------------------
package org.developersbrain.solutions;

public class StringRoutines {

/*Find and replace a sequence of characters*/
int getArrayLength(char[] arrList){
return arrList.length;
}

char[] replace(char[] arrList,int startPos,int endPos,char[] findChar,char[] repChar){
int findLength=getArrayLength(findChar);
int repLength=getArrayLength(repChar);
char[] chrRep = null;
if(findLength==repLength){
for(int i=startPos,k=0;i<endPos;i++,k++)
arrList[i]=repChar[k];
}else if(repLength>findLength){
int diff=(repLength-findLength);
int arrLength=getArrayLength(arrList);
chrRep=new char[arrLength+diff];
int i,j;
for(i=0,j=0;i<arrLength;j++,i++){
chrRep[j]=arrList[i];
if(j==startPos){
for(int k=0;k<repLength;k++,j++){
chrRep[j]=repChar[k];
}
j--;
i=(j-diff);
}
}
}else{
int diff=(findLength-repLength);
int arrLength=getArrayLength(arrList);
chrRep=new char[arrLength-diff];
int i,j;
for(i=0,j=0;i<arrLength;j++,i++){
chrRep[j]=arrList[i];
if(j==startPos){
for(int k=0;k<repLength;k++,j++){
chrRep[j]=repChar[k];
}
j--;
i=j+1;
}
}
}

if(chrRep==null) return arrList;
else return chrRep;

}

char[] replace(char[] arrList,char[] findChar,char[] repChar){
int arrLength = getArrayLength(arrList);
int findCharLength=getArrayLength(findChar);
int repCharLength=getArrayLength(repChar);
int i,j,k;


for(i=0;i<arrLength;i++){

for(j=i,k=0;k<findCharLength;j++,k++){
if(arrList[j]!=findChar[k]) break;
}
if(findCharLength==k){
arrList=replace(arrList,i,j,findChar,repChar);
if(findCharLength<repCharLength){
arrLength=arrLength+(repCharLength-findCharLength);
}else if(findCharLength>repCharLength){
arrLength=arrLength-(findCharLength-repCharLength);
//i=i-(findCharLength-repCharLength);
}
}
}
return arrList;
}

String convertArrString(char[] arrList){
int arrLength = getArrayLength(arrList);
String retString="";
for(int i=0;i<arrLength;i++){
retString=retString+arrList[i];
}
return retString;
}

public String replace(String inputString,String findStr,String replaceStr){
char[] arrList=inputString.toCharArray();
char[] findChar=findStr.toCharArray();
char[] repChar=replaceStr.toCharArray();
if(findChar.length==0 || repChar.length==0){
return inputString;
}else{
char[] outArr=replace(arrList,findChar,repChar);
return convertArrString(outArr);
}
}

}


File2: MainClass.java
---------------------------------------------------------------------

package org.developersbrain.solutions;

public class MainClass {
public static void main(String[] args){
StringRoutines sr=new StringRoutines();
String str="Hey find and replace me.find find find     .find";
String findStr=" ";
String repStr="%20";
System.out.println("Case 1:");
System.out.println("Given String:"+str);
System.out.println("Find text:"+findStr);
System.out.println("Replace with:"+repStr);
str=sr.replace(str, findStr, repStr);
System.out.println("Modified String: "+str);
   System.out.println();
str="Hey find and replace me.find find find     .find";
findStr="find";
repStr="FIND";
System.out.println("Case 2:");
System.out.println("Given String:"+str);
System.out.println("Find text:"+findStr);
System.out.println("Replace with:"+repStr);
str=sr.replace(str, findStr, repStr);
System.out.println("Modified String: "+str);

   System.out.println();
str="Hey find and replace me.find find find     .find";
findStr="find";
repStr="you     YOU";
System.out.println("Case 3:");
System.out.println("Given String:"+str);
System.out.println("Find text:"+findStr);
System.out.println("Replace with:"+repStr);
str=sr.replace(str, findStr, repStr);
System.out.println("Modified String: "+str);

}
}


Output:
---------------------------------------------------------------------------------

Case 1:
Given String:Hey find and replace me.find find find     .find
Find text: " " ---Space Character
Replace with:%20
Modified String: Hey%20find%20and%20replace%20me.find%20find%20find%20%20%20%20%20.find

Case 2:
Given String:Hey find and replace me.find find find     .find
Find text:find
Replace with:FIND
Modified String: Hey FIND and replace me.FIND FIND FIND     .FIND

Case 3:
Given String:Hey find and replace me.find find find     .find
Find text:find
Replace with:you     YOU
Modified String: Hey you     YOU and replace me.you     YOU you     YOU you     YOU     .you     YOU


Comments

Popular posts from this blog

CODILITY: Determine whether given string of parentheses is properly nested.

Task description A string S consisting of N characters is called  properly nested  if: S is empty; S has the form " (U) " where U is a properly nested string; S has the form " VW " where V and W are properly nested strings. For example, string " (()(())()) " is properly nested but string " ()) " isn't. Write a function: class Solution { public int solution(String S); } that, given a string S consisting of N characters, returns 1 if string S is properly nested and 0 otherwise. For example, given S = " (()(())()) ", the function should return 1 and given S = " ()) ", the function should return 0, as explained above. Assume that: N is an integer within the range [ 0 .. 1,000,000 ]; string S consists only of the characters " ( " and/or " ) ". Complexity: expected worst-case time complexity is O(N); expected worst-case space complexity is O(1) (not counting the storage requi...

Distinct: Compute number of distinct values in an array.

Task description Write a function class Solution { public int solution(int[] A); } that, given a zero-indexed array A consisting of N integers, returns the number of distinct values in array A. Assume that: N is an integer within the range [ 0 .. 100,000 ]; each element of array A is an integer within the range [ −1,000,000 .. 1,000,000 ]. For example, given array A consisting of six elements such that: A[0] = 2 A[1] = 1 A[2] = 1 A[3] = 2 A[4] = 3 A[5] = 1 the function should return 3, because there are 3 distinct values appearing in array A, namely 1, 2 and 3. Complexity: expected worst-case time complexity is O(N*log(N)); expected worst-case space complexity is O(N), beyond input storage (not counting the storage required for input arguments). Elements of input arrays can be modified. class Solution { public int solution ( int [] A) { // write your code in Java SE 8 int len=A.length; int count= 1 ; ...

change directory (cd) function for an abstract file system ( Java Implementation )

Write a function that provides change directory (cd) function for an abstract file system. Notes: Root path is '/'. Path separator is '/'. Parent directory is addressable as "..". Directory names consist only of English alphabet letters (A-Z and a-z). For example, new Path("/a/b/c/d").cd("../x").getPath() should return "/a/b/c/x". Note: The evaluation environment uses '\' as the path separator. public class Path {     private String path;     public Path(String path) {         this.path = path;     }     public String getPath() {         return path;     }     public Path cd(String newPath) {         //throw new UnsupportedOperationException("Waiting to be implemented."); String[] newP=newPath.split("/");     String[] oldP=path.split("/");     int lnCount=0;     for(String str:newP){     if(st...