You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将一个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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:00:59