雖然你已經在程序中寫過字符串了,你還沒學過它們的用處。在這章習題中我們將使用復雜的字符串來建立一系列的變量,從中你將學到它們的用途。首先我們解釋一下字符串是什么東西。
字符串通常是指你想要展示給別人的,或者是你想要從程序里「導出」的一小段字符。Ruby 可以通過文字里的雙引號 `" `或者是單引號 `'` 識別出字符串來。這在你以前的 puts練習中你已經見過很多次了。如果你把單引號或者雙引號括起來的文字放到 puts 后面,他們就會被 Ruby 印出來。
字符串可以包含你目前學過的格式化字符串。你只要將格式化的變量放到字符串中,跟著一個百分比符號 `%` (percent),再緊跟著變量名稱即可。唯一要注意的地方,是如果你想要在字符串中通過格式化字符串放入多個變量的結果,你需要將變量放到` []` 中括號(brackets) 中,而且變量之間用` ,` 逗號(comma)隔開。就像你逛商店時說「我要買牛奶、面包、雞蛋、湯」一樣,只不過程序設計師說的是”[milk, eggs, bread, soup]”。
另一種方式是使用字符串插值 (string interpolation) 這種技巧,將變量插入到你的字符串中。方法是使用`#{} `井號和大括號(pound and curly brace)。與其使用這種格式化字符串
~~~
name1 = "Joe"
name2 = "Mary"
puts "Hello %s, where is %s?" % [name1, name2]
~~~
我們可以鍵入:
~~~
name1 = "Joe"
name2 = "Mary"
puts "Hello #{name1}, where is #{name2}?"
~~~
我們將鍵入大量的字符串、變量和格式化字符串,并且將它們輸出。我們還將練習使用簡寫的變量名稱。程序設計師喜歡使用惱人的隱晦簡寫來節省打字時間,所以我們現在就將提早學會這件事,這樣你就能讀懂并寫出這些東西了。
~~~
x = "There are #{10} types of people."
binary = "binary"
do_not = "don't"
y = "Those who know #{binary} and those who #{do_not}."
puts x
puts y
puts "I said: #{x}."
puts "I also said: '#{y}'."
hilarious = false
joke_evaluation = "Isn't that joke so funny?! #{hilarious}"
puts joke_evaluation
w = "This is the left side of..."
e = "a string with a right side."
puts w + e
~~~
# 你應該看到的結果
* * * * *
~~~
There are 10 types of people.
Those who know binary and those who don't.
I said: There are 10 types of people..
I also said: 'Those who know binary and those who don't.'.
Isn't that joke so funny?! false
This is the left side of...a string with a right side.
~~~
# 加分習題
* * * * *
1. 遍歷程序,在每一行的上面寫一行注釋,給自己解釋這一行的作用。
2. 找到所有的「字符串包含字符」的位置,總共有四個位置。
3. 你確定只有四個位置嗎?你怎么知道的?說不定我在騙你呢。
4. 解釋一下為什么 w 和 e 用 + 連起來就可以生成一個更長的字符串。
- 笨方法更簡單
- 習題 00: 準備工作
- 習題 01: 第一個程序
- 習題 02: 注釋和#號
- 習題 03: 數字和數學計算
- 習題 04: 變量的命名
- 習題 05: 更多的變量和輸出
- 習題 06: 字符串和文字
- 習題 07: 更多輸出
- 習題 08: 輸出,輸出
- 習題 09: 輸出,輸出,輸出~
- 習題 10: 那是啥?
- 習題 11: 提問
- 習題 12: 模塊
- 習題 13: 參數,解包,參數
- 習題 14: 提示和傳遞
- 習題 15: 讀取文件
- 習題 16: 操作文件
- 習題 17: 更多的文件操作
- 習題 18: 命名,變量,代碼,函數
- 習題 19: 函數和變量
- 習題 20: 函數和文件
- 習題 21: 函數可以傳入信息
- 習題 22: 到現在你學到了什么?
- 習題 23: 閱讀一些代碼
- 習題 24: 更多練習
- 習題 25: 更多更多的練習
- 習題 26: 恭喜你,現在來考試了!
- 習題 27: 記住邏輯關系
- 習題 28: Boolean表達式練習
- 習題 29: 如果
- 習題 30: Else 和 If
- 習題 31: 做出判斷
- 習題 32: 循環和數組
- 習題 33: While
- 習題 34: 存取數組里的元素
- 習題 35: 分支和函數
- 習題 36: 設計和測試
- 習題 37: 重視各種符號