<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    Scheme的字符串操作

    Posted on 2009-10-12 17:59 dennis 閱讀(1909) 評論(0)  編輯  收藏 所屬分類: 動態語言
        字符串操作是任何一門編程語言中最常用的操作之一,scheme也提供了一系列procudure來操作字符串。

    1、字符串的比較,有6個,分別是string=?  string>? string<? string>=? string<=?

    這與其他語言中對string的比較并無不同,比較字符和長度。

    例子:
    (string=? "mom" "mom") <graphic> #t
    (string<? "mom" "mommy") <graphic> #t
    (string>? "Dad" "Dad") <graphic> #f
    (string=? "Mom and Dad" "mom and dad") <graphic> #f
    (string<? "a" "b" "c") <graphic> #t

    注意這些比較操作是大小寫敏感。相應的,大小寫不敏感的版本:

    procedure: (string-ci=? string1 string2 string3 ...)
    procedure: (string-ci<? string1 string2 string3 ...)
    procedure: (string-ci>? string1 string2 string3 ...)
    procedure: (string-ci<=? string1 string2 string3 ...)
    procedure: (string-ci>=? string1 string2 string3 ...)

    2、從字符構造字符串,使用string過程
    (string #\a)  => "a"
    (string #\a #\b #\c)  => "abc"

    注意,換行字符是#\newline,回車字符是#\return

    3、重復N個字符構造字符串
    (make-string)  => ""
    (make-string 4 #\a)  =>"aaaa")

    4、字符串長度 string-length
    (string-length "") =>0
    (string-length "dennis") => 6

    5、取第N個字符,相當于java中的charAt:

    (string-ref "hi there" 0) <graphic> #\h
    (string-ref "hi there" 5) <graphic> #\e

    6、修改字符串的第N個字符:
    (string-set! "hello" 0 #\H) => "Hello"

    7、拷貝字符串:
    (let ((str "abc"))
      (eq? str (string-copy str)))  => #f
    (let ((str "abc"))
      (equal? str (string-copy str)))  => #t

    8、拼接字符串,string-append
    (string-append) => ""
    (string-append "abc" "defg") => "abcdefg"

    9、截取子串
    (substring "hi there" 0 1) <graphic> "h"
    (substring "hi there" 3 6) <graphic> "the"
    (substring "hi there" 5 5) <graphic> ""

    10、填充字符串
    (let ((str (string-copy "sleepy")))
      (string-fill! str #\Z)
      str) <graphic> "ZZZZZZ"

    11、與list的相互轉換

    (string->list "") <graphic> ()
    (string->list "abc") <graphic> (#\a #\b #\c)

    (list->string '()) <graphic> ""
    (list->string '(#\a #\b #\c)) <graphic> "abc"
    (list->string
      (map char-upcase
           (string->list "abc"))) <graphic> "ABC"

    主站蜘蛛池模板: 亚洲AV无码乱码在线观看牲色 | 亚洲五月综合缴情在线观看| 中文字幕精品三区无码亚洲| 久久午夜夜伦鲁鲁片免费无码影视| 久久99热精品免费观看牛牛| 亚洲真人日本在线| xxxxxx日本处大片免费看| 免费国产在线观看| 色噜噜狠狠色综合免费视频| 免费少妇a级毛片| 成在线人免费无码高潮喷水| 亚洲精品无码久久一线| 黄色网址在线免费| 亚洲视频一区二区在线观看| 2019中文字幕免费电影在线播放 | 99在线免费视频| 亚洲一区二区三区偷拍女厕 | 亚洲精品成人网站在线播放| 日本视频一区在线观看免费| 亚洲女人18毛片水真多| 男女啪啪永久免费观看网站| 最好2018中文免费视频| 亚洲国产成人久久综合一区77 | 国产成人精品久久亚洲| 中文在线观看国语高清免费| 亚洲Av综合色区无码专区桃色| 爱情岛亚洲论坛在线观看| 亚洲美女高清一区二区三区 | 亚洲丁香婷婷综合久久| 大胆亚洲人体视频| 日韩精品无码免费专区网站| 亚洲综合综合在线| 免费大黄网站在线观| 国产精品区免费视频| 亚洲国产区男人本色在线观看| 久久久精品2019免费观看| 亚洲国产美女精品久久久| 国产亚洲精品线观看动态图| 91九色老熟女免费资源站| 国产成人精品日本亚洲语音| 亚洲av日韩av无码|