2017-01-30 12 views
0

C#에서 단일성을위한 코드를 작성하려고합니다. \ n 목록에 문제가 발생했습니다. 내 코드를 heres.문자열 배열에 n 추가하기

public static List<string> ChatHeads = null; 
public void Start() 
{ 
    ChatHeads = new List<string>(); 
} 

void Update() 
{ 
    ChatBoxMessage.text = GetChatHead(); 
} 

string GetChatHead() 
{ 
    return string.Join(System.Environment.NewLine, ChatHeads.ToArray()); 
} 

public void MainFunc() 
{ 
    string FinalMessage = ""; 

    if (FinalMessage.Length >= 82 || !.inWorld) 
    { 
     FinalMessage = Message + "\n"; 
     ChatHeads.Add(FinalMessage); 
    } 
    else 
    { 
     FinalMessage = "[" + username + "] " + MainWorld.ChatTag + Message + "\n"; 
     ChatHeads.Add(FinalMessage); 
    } 
} 

문제점은 GetChatHead()가 \ n이 문자열의 마지막 부분이 아니면 첫 번째 배열 문자열 만 반환한다는 것입니다. \ n이 나타나면 코드는 정상적으로 작동하지만 절대 사라지지 않습니다. 덕분에 .

그림 목록 배열, 아니요 \ n 줄 끝 부분.

Pic to List array, No \n at end of any lines. 는 [2

+0

왜 채팅 메시지를 배열로 가져 오는 지 확신 할 수 없습니다. 설명 할 수 있니? 특정 수의 문자로 새 줄을 지정해야하는 이유는 무엇입니까? – Takarii

+1

"GetChatHead()는 첫 번째 배열 문자열 만 반환합니다."메서드가 문제가 아닌 것처럼 보입니다. 어떻게 표시합니까? 'ChatBoxMessage'는 무엇입니까? 지금까지는 문제를 재현 할 수 없습니다. 게시 된 배열은 내가 시도 할 때 7 줄의 텍스트가됩니다. 이것은'GetChatHead()'가 한 줄만 반환하는 예제입니까? –

+0

텍스트 ChatBoxMessage = GameObject.Find ("ChatBoxMessage"). GetComponent (); –

답변

0

해결. 분명 Encoding.Default.GetString()은 문자열에 아무 것도 추가하지 못하게합니다.

Message = Encoding.Default.GetString(packet.ReadBytes((int)Length)); 

근무 없음 좋은

Message = packet.ReadString();

.