如何将一个TextMeshPro文本复制到另一个并去除换行符?
问题描述
我有两个TextMeshProUGUI组件,想要把第一个组件的文本内容复制到第二个组件中,但需要去除所有换行符。
第一个TextMeshPro的文本内容:
Computer. CPU, GPU, HDD. Graphics Card Nvidia.
期望复制完成后,第二个TextMeshPro的文本内容:
Computer. CPU, GPU, HDD. Graphics Card Nvidia.
当前使用的代码如下,请问该如何修改代码实现需求?
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; public class CopyMessage : MonoBehaviour { public TextMeshProUGUI text1; public TextMeshProUGUI text2; // Start is called before the first frame update void Start() { text2.text = text1.text; } }
解决方案
只需在复制文本时,利用string.Replace()方法将所有类型的换行符替换为空格即可。修改后的Start()方法代码如下:
void Start() { // 先替换Windows风格换行\r\n,再替换Unix风格换行\n,确保所有换行都被处理 string processedText = text1.text.Replace("\r\n", " ").Replace("\n", " "); text2.text = processedText; }
补充说明
如果原文本换行处可能出现连续空格,或者替换后产生多个空格,可以追加一行代码合并连续空格:
processedText = processedText.Replace(" ", " ");
不过根据你的需求示例,仅替换换行符为单个空格就可以达到预期效果。
内容的提问来源于stack exchange,提问作者Vika
相关产品推荐
相关产品推荐

