Dynamo
Primer for v2.0
繁體中文
繁體中文
  • 關於
  • 簡介
    • 什麼是 Dynamo?它如何運作?
    • 手冊使用者指南、Dynamo 社群與平台
  • 安裝 Dynamo
  • 使用者介面
    • 工作區
    • 資源庫
  • 節點和線路
  • 基本節點和概念
    • 節點的索引
    • 用於計算設計的幾何圖形
      • 幾何圖形概述
      • 向量、平面和座標系統
      • 點
      • 曲線
      • 曲面
      • 實體
      • 網格
    • 程式的建置區塊
      • 資料
      • 數學
      • 邏輯
      • 字串
      • 顏色
    • 使用清單設計
      • 什麼是清單
      • 使用清單
      • 清單的清單
      • n 維清單
    • Dynamo 中的字典
      • 什麼是字典
      • 字典節點
      • 程式碼區塊中的字典
      • Revit 使用情況
  • 自訂節點和套件
    • 自訂節點
      • 自訂節點簡介
      • 建立自訂節點
      • 發佈至資源庫
    • 套件
      • 套件簡介
      • 套件案例研究 - Mesh Toolkit
      • 開發套件
      • 發佈套件
      • Zero-Touch 匯入
  • 適用於 Revit 的 Dynamo
    • Revit 連接
    • 選取
    • 編輯
    • 建立
    • 自訂
    • 記錄
  • Dynamo for Civil 3D
    • Civil 3D 連接
    • 入門
    • 節點資源庫
    • 範例工作流程
      • 道路
        • 燈柱放置
      • 面
        • 服務放置
      • 公用程式
        • 更名結構
      • 鐵路
        • 間隙包絡線
      • 測量
        • 點群組管理
    • 進階主題
      • 物件併入
      • Python 和 Civil 3D
    • Dynamo 播放器
    • 有用的套件
    • 資源
  • Dynamo in Forma Beta 版
    • 設定 Forma 中的 Dynamo Player
    • 在 Dynamo Player 中加入和分享圖表
    • 在 Dynamo Player 中執行圖表
    • Dynamo 計算服務與桌面版 Dynamo 的差異
  • 在 Dynamo 中撰寫程式碼
    • 程式碼區塊和 DesignScript
      • 什麼是程式碼區塊
      • DesignScript 語法
      • 速寫
      • 函數
    • 使用 DesignScript 的幾何圖形
      • DesignScript 幾何圖形基礎知識
      • 幾何基本型
      • 向量數學
      • 曲線:內插和控制點
      • 平移、旋轉和其他轉換
      • 曲面:內插、控制點、斷面混成、迴轉
      • 幾何參數化
      • 交集和修剪
      • 幾何布林運算
      • Python 點產生器
    • Python
      • Python 節點
      • Python 和 Revit
      • 設定您自己的 Python 樣板
    • 語言變更
  • 最佳實踐
    • 圖表策略
    • 指令碼撰寫策略
    • 指令碼撰寫參考
    • 管理您的程式
    • 在 Dynamo 中有效率地處理大型資料集
  • 範例工作流程
    • 入門工作流程
      • 參數式花瓶
      • 牽引點
    • 概念索引
  • 開發人員手冊
    • 從原始碼建置 Dynamo
      • 從原始碼建置 DynamoRevit
      • 管理和更新 Dynamo 中的相依性
    • 為 Dynamo 開發
      • 入門
      • Zero-Touch 案例研究 - 網格節點
      • 在 Zero-Touch 節點中執行 Python 指令碼 (C#)
      • 深入瞭解 Zero-Touch
      • 進階 Dynamo 節點自訂
      • 在 Dynamo 套件中使用 COM (互通性) 類型
      • NodeModel 案例研究 - 自訂使用者介面
      • 針對 Dynamo 2.x 更新您的套件和 Dynamo 資源庫
      • 針對 Dynamo 3.x 更新套件與 Dynamo 資料庫
      • 延伸
      • 定義 Dynamo 2.0+ 的自訂套件組織
      • Dynamo 指令行介面
      • Dynamo 整合
      • 為 Dynamo for Revit 開發
      • 發佈套件
      • 從 Visual Studio 建置套件
      • 將延伸當作套件
    • 提取請求
    • 測試預期結果
    • 範例
  • 附錄
    • 常見問題
    • 視覺程式設計和 Dynamo
    • 資源
    • 發行說明
    • 有用的套件
    • 範例檔案
    • 主體程式整合對應表
    • 下載 PDF
    • Dynamo 鍵盤快速鍵
Powered by GitBook
On this page
  • 什麼是字串
  • 建立字串
  • 練習
  • 查詢字串
  • 操控字串
  • 使用字串
Edit on GitHub
Export as PDF
  1. 基本節點和概念
  2. 程式的建置區塊

字串

Previous邏輯Next顏色

Last updated 1 month ago

什麼是字串

正式的說法是,字串是字元的序列,表示文字常數或某些類型的變數。非正式的說法是,字串是文字式的程式設計行話。我們曾使用數字 (整數與小數) 來驅動參數,現在使用文字也可以做到這一點。

建立字串

字串可以用於多種應用,包括定義自訂參數、註解文件集,以及剖析文字式資料集。字串節點位於 Core > Input 。

以上範例節點是字串。數字可以表示為字串、字母或文字陣列。

練習

在下方的連結按一下,下載範例檔案。

附錄中提供範例檔案的完整清單。

查詢字串

透過查詢字串,您可以快速剖析大量資料。我們將討論一些基本作業,這些作業可以加快工作流程,有助於提高軟體互通性。

以下影像將考慮來自外部工作表的資料字串。該字串表示 XY 平面內某矩形的頂點。接下來在小練習中詳細瞭解某些字串分割作業:

  1. 「;」分隔符號分隔矩形的每個頂點。這會建立清單,每個頂點有 3 個項目。

  1. 透過按一下節點中部的「+」,可以建立新分隔符號。

  2. 在圖元區加入「,」字串,並插入新的分隔符號輸入。

  3. 現在結果將產生含十個項目的清單。節點會先根據 separator0 進行分割,然後根據 separator1 進行分割。

雖然以上項目清單可能看起來像數字,但是在 Dynamo 中,仍將其視為單獨的字串。若要建立點,需要將其資料類型從字串轉換為數字。我們使用 String.ToNumber 節點來達成

  1. 本節點非常簡單。將 String.Split 的結果插入輸入。輸出看上去似乎相同,但現在資料類型是 number 而不是 string。

透過其他某些基本作業,我們現在已根據原始字串輸入,在原點繪製了三角形。

操控字串

由於字串是一般文字物件,因此可以適用於多種應用。接下來我們看一下在 Dynamo 的 Core > String 中的一些主要動作:

這種方法可以按順序合併兩個字串。它會提取清單中的每個文字字串,然後建立一個合併後的字串。

以下表示連接三個字串:

  1. 按一下節點中心的「+/-」按鈕,可以加上或減去連接的字串。

  2. 輸出是一個連接後的字串,其中包括空格與標點。

接合方法非常類似於連接,只是會加入標點。

如果您曾使用 Excel,可能會遇到 CSV 檔案。CSV 表示以逗號分隔的值。可以使用逗號 (或此案例中的兩條虛線) 做為分隔符號搭配 String.Join 節點,以建立類似的資料結構。

以下影像表示接合兩個字串:

  1. 藉由分隔符號輸入,可以建立對接合後的字串進行分割的字串。

使用字串

接下來從這一節的基本字串分割開始。首先,我們注意到書寫格式的依據是逗號。我們將使用此格式將每行分隔為個別項目。

  1. 將基準字串貼至 String 節點。

  2. 另一個 String 節點用來表示分隔符號。在此案例中,我們將使用逗號。

  3. 將 String.Split 節點加入圖元區,並連接至兩個字串。

  4. 輸出顯示我們現在已將各行分隔為個別元素。

現在,我們來到詩詞美妙的部分:最後兩行。原始的一節是一個資料項目。在第一步,我們已將此資料分隔為個別項目。現在,我們需要搜尋要尋找的文字。雖然我們_可以_透過選取清單中的最後兩個項目來實現這一點,但是如果是整本書,我們不希望通讀所有內容然後手動隔離元素。

  1. 我們不是手動搜尋,而是使用 String.Contains 節點對一組字元執行搜尋。這類似於文字處理器中的「尋找」指令。在此案例中,會傳回「true」,若項目中找到該子字串,會傳回「false」。

  2. 在 searchFor 輸入中,我們會定義將在該節中尋找的子字串。接下來使用 String 節點搭配文字「And miles」。

  3. 輸出是 false 與 true 的清單。在下一步中,我們使用此布林邏輯對元素進行篩選。

  1. 我們將使用 List.FilterByBoolMask 節點篩選出 false 與 true。「in」輸出會傳回「遮罩」輸入為「true」的陳述式,而「out」輸出會傳回「遮罩」輸入為「false」的陳述式。

  2. 「in」的輸出與預期相同,是該節詩句的最後兩行。

現在,我們希望合併這兩行,以重複這節詩句。檢視上一步的輸出時,我們注意有清單中有兩個項目:

  1. 透過兩個 List.GetItemAtIndex 節點,我們可以使用值 0 與 1 做為索引輸入以隔離項目。

  2. 每個節點的輸出依序提供最後兩行。

為了將這兩個項目合併為一個,我們使用 String.Join 節點:

  1. 加入 String.Join 節點後,我們注意到需要分隔符號。

  2. 為了建立分隔符號,我們在圖元區加入 String 節點,然後鍵入逗號。

  3. 最終的輸出已將最後兩個項目合併為一個。

這看起來似乎要執行很多工作才能隔離最後兩行,的確,字串作業通常需要某些前置工作。但這些作業可擴充,而且可以相對輕鬆地套用至大型資料集。如果您以參數方式使用工作表與互通性,請確保考慮到字串作業。

在此練習中,我們將使用字串的查詢與操控方法解構 Robert Frost 的 的最後一節。這並不是字串最實用的應用,但將其套用至清晰的節奏與韻律時,將有助於我們掌握概念字串的動作。

Stopping By Woods on a Snowy Evening
9KB
Building Blocks of Programs - Strings.dyn
連接
分割
分割字串