2016-11-17 9 views
0

私は理解していないC#/ Unityアプリケーションの文字列を連結するのに問題があります。これは、今日まで正常に動作していた簡単なチャットボックスです。私はそれがなぜ機能しなくなったのか完全に困惑しています。StringBuilderがAppendLineに失敗するのはなぜですか?

コード:

StringBuilder builder = new StringBuilder(); 
public void AddLine(string text) 
{ 
    builder.AppendLine(text); 
    chatText.text = builder.ToString(); 
} 

問題はビルダーが1つの入力を取るということです。テキストを1回追加します。その後、新しいテキストは追加されません。私がstringbuilderクラスを使用せずにただ実行すると同じことが成り立ちますChattext.text + = '\ n' + text;

どのような方法でも変更されていない文字列自体であることを確認できます。私はこれを半ダースの異なる方法で書きました。なぜこれが起こっているのでしょうか?

+7

私の推測では、あなたの文字列に '\ 0'かそれに類するものが含まれていると思います。これは 'StringBuilder'についてのものではありませんが、[mcve]なしでは何も言えません。 –

+0

chatTextは、複数行を表示するのに十分なスペースを持つmultilone TextBoxコントロールですか? – Steve

+0

ありがとうございました。私は文字列の中に何かがあると思うが、私はそういう関数を追加しているからだ: 'if(Input.GetKeyUp(KeyCode.A)) { AddLine(" Input "+ i.ToString()); i ++; } ' と正しく動作します。入ってくる文字列のデバッグ情報は完璧なものです。どのようにドリルダウンして、その文字列の詳細を得ることができますか? –

答えて

1

チェックChatTextの複数行プロパティをtrue

+0

テキストボックスは問題ありません。私はちょうど手動でテキストを追加するためにちょっとした機能を追加しましたが、これは機能します。 –

1

OKに設定するので、一番下の行は、入力された文字列内のいくつかの隠されたごみがあったので、これは連結に失敗した理由があるということですされている場合。どのようにそこにあるのかわかりませんが、解決策は正規表現を使用して入力文字列から無効な文字を除外することでした。

+0

なぜあなたは角度の質問を削除しましたか? – Sajeetharan

関連する問題