String Conversion and Type Casting
String conversion is the process of representing a value as text so it can take part in a textual message.
Why Values Need Text
A program often needs to place values into a message. The values and the message do not necessarily have the same data type: variables can hold different types of values, including numbers and strings. String conversion is the process of representing a value as text so it can take part in a textual message.
The important distinction is where conversion happens. You can explicitly convert values before building a message, or you can let the format method convert them automatically while inserting them into the message.
What do you think happens?
Suppose a message contains a number supplied by a variable. Which approach usually keeps the message easier to change: manually converting every value first, or using the format method to insert the values?
Reveal answer
Use the format method to insert the values
The source explains that the format method performs the conversion automatically and lets the message be changed independently of the variables.
Two Conversion Paths
With explicit conversion, each value is changed into a string before it is used in the message. The source describes this approach as uglier and more error-prone in the situation being discussed. With the format method, conversion to strings happens automatically as the values are inserted. This keeps the conversion step with the formatting operation instead of requiring separate conversions.
Message and Variables
The format method keeps two concerns apart. The message contains the wording and positions where values belong. The variables supply the values. Because these roles are separate, the message can be changed without having to change the variables, and the variables can be changed without rewriting the message wording.
Changing the wording without changing the values
A message needs to include a person's name and a score. Compare a formatting approach with an approach that first converts each value into text.
- 1Identify the values
The name and score are stored as variables. They may have different data types because variables can hold values of different types.
- 2Use formatting positions
The message is written with positions for the values. The format method receives the variables and converts them to strings as it inserts them.
- 3Revise the message
The wording can be changed while the name and score variables remain the same. The variables do not need to be manually converted again just because the message wording changed.
- 4Compare the alternative
If each value were explicitly converted before formatting, the conversion work would be handled separately. The source characterizes that style as uglier and more error-prone in this context.
Using the format method keeps the message and the variables independent while performing string conversion automatically during formatting.
Unicode and UTF-8
String conversion also matters when text crosses a program boundary. The source distinguishes Unicode strings from the format used to send and receive data. Unicode is used to handle non-English languages. When a program reads or writes a file, or communicates with another computer on the Internet, Unicode strings need to be converted into UTF-8 so they can be sent and received in that format.
Common Conversion Mistakes
Common mistake Manually converting every value before constructing the message.
What it looks likeA programmer converts each variable to a string first and then assembles the message.
Why it failsThe source describes this approach as uglier and error-prone in the relevant formatting situation.
Do this insteadUse the format method so conversion to strings occurs automatically while the values are inserted.
Common mistake Changing the variables whenever the message wording changes.
What it looks likeA revised message causes unnecessary changes to the values being inserted.
Why it failsThe format method allows the message to be changed without having to deal with the variables, and vice versa.
Do this insteadKeep message wording and inserted variables as separate parts of the formatting operation.
Common mistake Assuming that all text-handling conversion has the same purpose.
What it looks likeTreating message formatting and communication with a file or another computer as one identical conversion task.
Why it failsThe source identifies automatic conversion during formatting, but identifies UTF-8 as the format used when Unicode strings are sent to or received from files or other computers.
Do this insteadIdentify the context first: formatting a message uses the format method, while file and Internet communication uses UTF-8 for the Unicode text.
Practice Check
A message contains two variables: one number and one string. Describe, in your own words, how the format method handles the number when it inserts it into the message. Then explain why changing the message wording does not require changing the variables.
Hints
- Start by identifying which operation performs the string conversion.
- Then separate the wording of the message from the values supplied by the variables.
- Mention why this is preferable to manually converting each value first.
A program is preparing Unicode text to be written to a file. Which format does the source identify for sending and receiving that text, and why is conversion needed?
Hints
- The answer is a named text format.
- Connect the conversion to reading or writing files and communicating with other computers.
Key Takeaways
- 1Variables can hold values of different data types, including numbers and strings.
- 2Explicit conversion changes values into strings before they are used in a message, but this approach can be uglier and more error-prone.
- 3The format method converts values to strings automatically while inserting them into a message.
- 4The format method separates message wording from the variables, so either can be changed independently.
- 5Unicode strings are converted to UTF-8 when they must be sent or received through files or communication with other computers.
At a glance
- String conversion represents a value as text for use in a message or communication context.
- The format method performs string conversion automatically during insertion.
- Separating message text from variables makes formatting easier to change and maintain.
- UTF-8 is the format used to send and receive Unicode strings when working with files or other computers.