# Exercise Solutions: Strings¶

## Part One¶

1. The `length` method returns how many characters are in a string. However, the method will NOT give us the length of a number. If `num = 1001`, `num.length` returns `undefined` rather than 4.

1. Use type conversion to print the length (number of digits) of an integer.

```let num = 1001;
```
1. What if `num` could be EITHER an integer or a decimal? Add an `if/else` statement so your code can handle both cases. (Hint: Consider the `indexOf()` or `includes()` string methods).

 ```1 2 3 4 5``` ```if (String(num).includes('.')){ console.log(String(num).length-1); } else { console.log(String(num).length); } ```

## Part Two¶

1. Remember, strings are immutable. Consider a string that represents a strand of DNA: `dna = " TCG-TAC-gaC-TAC-CGT-CAG-ACT-TAa-CcA-GTC-cAt-AGA-GCT    "`. There are some typos in the string that we would like to fix:

1. Use the `trim()` method to remove the leading and trailing whitespace, and then print the results.

 ```1 2 3``` ```let dna = " TCG-TAC-gaC-TAC-CGT-CAG-ACT-TAa-CcA-GTC-cAt-AGA-GCT "; let newString = dna.trim(); console.log(newString); ```
1. Note that if you try `console.log(dna)` after applying the methods, the original, flawed string is displayed. To fix this, you need to reassign the changes back to `dna`. Apply these fixes to your code so that `console.log(dna)` prints the DNA strand in UPPERCASE with no whitespace.

 ```1 2 3``` ```let dna = " TCG-TAC-gaC-TAC-CGT-CAG-ACT-TAa-CcA-GTC-cAt-AGA-GCT "; dna = dna.trim().toUpperCase(); console.log(dna); ```
1. Let's use string methods to do more work on the DNA strand:

1. Replace the sequence `'GCT'` with `'AGG'`, and then print the altered Sstrand.

 ```1 2``` ```dna = dna.replace('GCT','AGG'); console.log(dna); ```
1. Use `slice()` to print out the fifth set of 3 characters (called a codon) from the DNA strand.

```console.log(dna.slice(16,19));
```
1. Just for fun, apply methods to `dna` and use another template literal to print, `'taco cat'`.

```console.log(`\${dna.slice(4,7).toLowerCase()}o \${dna.slice(dna.indexOf('CAT'),dna.indexOf('CAT')+3).toLowerCase()}`);
```

Back to the exercises

## Part Three¶

1. If we want to turn the string `'JavaScript'` into `'JS'`, we might try `.remove()`. Unfortunately, there is no such method in JavaScript. However, we can use our cleverness to achieve the same result.

1. Use string concatenation and two `slice()` methods to print `'JS'` from `'JavaScript'`.

 ```1 2``` ```let language = 'JavaScript'; console.log(language.slice(0,1)+language.slice(4,5)); ```
1. Use bracket notation and a template literal to print, `"The abbreviation for 'JavaScript' is 'JS'."`

```console.log(`The abbreviation for '\${language}' is '\${initials}'.`)
```

Back to the exercises