Solved

string without first and last character challenge

Posted on 2014-11-11
26
121 Views
Last Modified: 2014-11-21
Hi,

I am trying below challenge
http://codingbat.com/prob/p130896

i worte as below

public String withoutEnd(String str) {
int i=str.length();
if(i>=2)
return str.substring(1,2)+str.substring(2,i-1);
  
}

Open in new window


i am getting error as below

Compile problems:


Error:      public String withoutEnd(String str) {
                    ^^^^^^^^^^^^^^^^^^^^^^
This method must return a result of type String

Possible problem: the if-statement structure may theoretically
allow a run to reach the end of the method without calling return.
Consider adding a last line in the method return some_value;
so a value is always returned.

please advise on how to fix and improve my code. Thanks in advance
0
Comment
Question by:gudii9
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 15
  • 11
26 Comments
 
LVL 7

Author Comment

by:gudii9
ID: 40435425
public String withoutEnd(String str) {
int i=str.length();
String str2=null;
if(i>=2){
str2= str.substring(1,2)+str.substring(2,i-1);
}
return str2;
  
}

Open in new window


i tried as above still test cases failing

Expected      Run            
withoutEnd("Hello") → "ell"      "ell"      OK         
withoutEnd("java") → "av"      "av"      OK         
withoutEnd("coding") → "odin"      "odin"      OK         
withoutEnd("code") → "od"      "od"      OK         
withoutEnd("ab") → ""      "Exception:java.lang.StringIndexOutOfBoundsException: String index out of range: -1 (line number:5)"      X         
withoutEnd("Chocolate!") → "hocolate"      "hocolate"      OK         
withoutEnd("kitten") → "itte"      "itte"      OK         
withoutEnd("woohoo") → "ooho"      "ooho"      OK         
other tests
OK       

please advise
0
 
LVL 84

Expert Comment

by:ozo
ID: 40435439
What is "ab" without the first and last character, and how can you return it without giving substring an out of range index?

You might also think about whether there is a better way to write
str.substring(1,2)+str.substring(2,i-1)
0
 
LVL 7

Author Comment

by:gudii9
ID: 40435688
What is "ab" without the first and last character, and how can you return it without giving substring an out of range index?

without first and last character "ab" is nothing so i got above error which make sense now.

"The string length will be at least 2. "

Above line given in problem challenge. Does that mean 2 is included or no(i mean string leght should be 3 or more)??
You might also think about whether there is a better way to write
str.substring(1,2)+str.substring(2,i-1)

Open in new window

i am still thinking to write in better way
0
The Orion Papers

Are you interested in becoming an AWS Certified Solutions Architect?

Discover a new interactive way of training for the exam.

 
LVL 7

Author Comment

by:gudii9
ID: 40435693
public String withoutEnd(String str) {
int i=str.length();
String str2=null;
if(i>2){
str2= str.substring(1,2)+str.substring(2,i-1);
return str2;
}

else
{
return "";
}
  
}

Open in new window


i modified as above and passing all tests. Does it look fine? please advise
0
 
LVL 84

Expert Comment

by:ozo
ID: 40435744
What you wrote works.
But there is a simpler way to do it.
0
 
LVL 7

Author Comment

by:gudii9
ID: 40435879
But there is a simpler way to do it.
can you please let me know?
0
 
LVL 84

Expert Comment

by:ozo
ID: 40436532
If you simplify
str.substring(1,2)+str.substring(2,i-1);
then some other complications may also become unnecessary.
0
 
LVL 7

Author Comment

by:gudii9
ID: 40437367
If you simplify
str.substring(1,2)+str.substring(2,i-1);
how to simplify. i am not getting better idea. please advise
0
 
LVL 84

Expert Comment

by:ozo
ID: 40437438
How did you choose the number 2?
0
 
LVL 7

Author Comment

by:gudii9
ID: 40438176
return a version without the first

In the challenge they said as above without first character so i choose 2 to start from 2nd
0
 
LVL 7

Author Comment

by:gudii9
ID: 40438178
public String withoutEnd(String str) {
int i=str.length();
String str2=null;
if(i>2){
str2= str.substring(1,i-1);
return str2;
}

else
{
return "";
}
  
}

Open in new window


I think i got what you meant. I was able to modify as above and able to pass all the tests. Is my code in right track?
0
 
LVL 84

Expert Comment

by:ozo
ID: 40438890
On the right track.
Would
str.substring(1,i-1);
work in any other case besides
if(i>2){
?
0
 
LVL 7

Author Comment

by:gudii9
ID: 40441184
if i=2  then str.substring(1,i-1) become str.substring(1,1);//will not work as it looks string starting index 1 till 1 excluding 1
if i=1  then str.substring(1,i-1) become str.substring(1,0);//will not work as it looks string starting index 1 till 0 excluding 0
if i=0  then str.substring(1,i-1) become str.substring(1,-1);//will not work as it looks string starting index 1 till -1 excluding -1
0
 
LVL 84

Expert Comment

by:ozo
ID: 40441197
if i=2  then str.substring(1,i-1) become str.substring(1,1);//will not work as it looks string starting index 1 till 1 excluding 1
false

if i=1  then str.substring(1,i-1) become str.substring(1,0);//will not work as it looks string starting index 1 till 0 excluding 0
true

if i=0  then str.substring(1,i-1) become str.substring(1,-1);//will not work as it looks string starting index 1 till -1 excluding -1
true
0
 
LVL 7

Author Comment

by:gudii9
ID: 40441225
if i=2  then str.substring(1,i-1) become str.substring(1,1);//will not work as it looks string starting index 1 till 1 excluding 1
false

i wonder why it is false.

How ti looks for string starting index 1 till index 1 excluding index 1.
please advise
0
 
LVL 84

Expert Comment

by:ozo
ID: 40441271
What is the length of substring(1,i-1) ?
What is 1-1?
0
 
LVL 7

Author Comment

by:gudii9
ID: 40441441
Length I am thinking as 0
0
 
LVL 84

Expert Comment

by:ozo
ID: 40441679
yes
0
 
LVL 7

Author Comment

by:gudii9
ID: 40442638
if i=2  then str.substring(1,i-1) become str.substring(1,1);//will not work as it looks string starting index 1 till 1 excluding 1
false

I wonder why above answer is false. I am still thinking it will not work. please advise
0
 
LVL 84

Expert Comment

by:ozo
ID: 40443583
the
it looks string starting index 1 till 1 excluding 1
part is true,
the
will not work
part is false

What is the length of the string you want to return if i==2?
0
 
LVL 7

Author Comment

by:gudii9
ID: 40443616
What is the length of the string you want to return if i==2?
0
0
 
LVL 7

Author Comment

by:gudii9
ID: 40443618
so it simply prints empty string if i==2?
0
 
LVL 84

Expert Comment

by:ozo
ID: 40443638
As required.
0
 
LVL 7

Author Comment

by:gudii9
ID: 40443668
if i=2  then str.substring(1,i-1) become str.substring(1,1);//will not work as it looks string starting index 1 till 1 excluding 1

i have to correct as
if i=2  then str.substring(1,i-1) become str.substring(1,1);//will  work as it looks string starting index 1 till 1 excluding 1
0
 
LVL 7

Author Comment

by:gudii9
ID: 40456126
i have to correct as
if i=2  then str.substring(1,i-1) become str.substring(1,1);//will  work as it looks string starting index 1 till 1 excluding 1

and prints "".

I am correct in my understanding right?
please advise
0
 
LVL 84

Accepted Solution

by:
ozo earned 500 total points
ID: 40456334
Yes, if i=2 str.substring(1,i-1) would be ""
0

Featured Post

What Is Transaction Monitoring and who needs it?

Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
The viewer will learn how to implement Singleton Design Pattern in Java.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.

717 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question