24a-section-4-solutions

24a-section-4-solutions - Mehran Sahami CS 106A Handout...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Mehran Sahami CS 106A Handout #24A October 24, 2007 Solution to Section #4 Portions of this handout by Eric Roberts and Patrick Young 1. Adding commas to numeric strings private String addCommasToNumericString(String digits) { String result = ""; int len = digits.length(); int nDigits = 0; for (int i = len - 1; i >= 0; i--) { result = digits.charAt(i) + result; nDigits++; if (((nDigits % 3) == 0) && (i > 0)) { result = "," + result; } } return result; } 2. Deleting characters from a string private String removeAllOccurrences(String str, char ch) { String result = ""; for (int i = 0; i < str.length(); i++) { if (str.charAt(i) != ch) { result += str.charAt(i); } } return result; } A slightly different approach that involves a while loop instead of a for loop: private String removeAllOccurrences(String str, char ch) { while (true) { int pos = str.indexOf(ch); if (pos >= 0) { str = str.substring(0, pos) + str.substring(pos + 1); } else break; } return str; } Could you generalize these functions to remove substrings? For instance, removeAllSubstrings("Mississippi", 'si') returns "Missppi". Would these two functions ever return different values for the same input? –2– 3. Heap/Stack diagrams heap 1000 num den num den num den num den num den 1 2 1020 1 1 1040 1 2 1060 garbage i result n x 1080 1 4 1 8 stack 3 1080 3 1000 1000 FFB0 FFB4 FFB8 FFB8 r FFC0 4. Tracing method execution ...
View Full Document

Ask a homework question - tutors are online