2012-01-27 2 views
2

필자가 작성하려고하는 부분은 사용자 이름을 입력하고 목록 상자에서 이니셜을 꺼내는 것으로되어 있습니다. 지금까지이 :부분 문자열을 사용하여 이니셜을 표시하는 공간을 찾는 방법

Dim initials As String 
Dim indexspace As Integer 
initials = name.Substring(0, 1) 
indexspace = name.IndexOf(" ") 
lstInvoice.Items.Add(String.Format(strFormat, "Invoice ID", initials & space)) 

나는이 프로그램을 실행하면, 나는 팝업 최초의 초기를 얻을 수 있습니다,하지만 난 팝업 두 번째를 얻을하는 방법을 특정하지 않다.

이 문제에 당신에게 당신의 도움을 대단히 감사합니다, 그것은 훨씬

+1

구두점과 공백이없는 'A.A.Milne' 또는'E.E. (Doc) Smith'의 이니셜은 무엇입니까? – paxdiablo

답변

2

Q를 감사 : 어떻게 VB.Net의 문자열에 공백 ("")에서 찾을 수 있습니까?

A : String.IndexOf ("");

Q : 문자열에서 후속 공백은 어떻게 찾습니까?

A : 발견 한 첫 번째 공백 오른쪽의 모든 부분 문자열을 추출합니다.

그런 다음 해당 하위 문자열의 ".IndexOf (" ")"를 수행하십시오.

당신은 문자열의 끝에 도달 할 때까지, 또는

+1

왜 downvotes입니까? 이 대답이 잘못 되었습니까? – paxdiablo

+0

Split을 사용하는 버전에 비해 너무 복잡하지 않습니다. 나는 그것을 downvoted하지 않았을 것이다. –

1

: 당신이 지루해 할 때까지 나는 VB에서를 작성하지 사과하지만 C#을 더 잘 알고. 공간 색인을 찾을 이유가 없습니다. 그냥 공백에 문자열을 분할하고 배열의 각 결과의 첫 글자를 가져옵니다. 단순화하기 위해, 나는 그것이 문자열의 두 단어였다 가정을했지만 그들은 중간 이름에 포함하는 경우는 결과의 배열을 루프는 모든 이니셜을 넣어 수 :

string name = "Test User"; 
string[] nameParts = name.Split(' '); 
string initials = nameParts[0].Substring(0, 1) + nameParts[1].Substring(0, 1); 

VB 버전 :

Dim name As String = "Test User" 
Dim nameParts As String() = name.Split(" ") 
Dim initials As String = nameParts(0).Substring(0, 1) & nameParts(1).Substring(0, 1) 

또 다시 이것은 매우 단순한 접근 방식입니다. @ paxdiablo가 그의 의견에서 지적한 바와 같이,이 패턴과 일치하지 않는 이름의 변형이 있지만 당신은 프로그램이라는 것을 알고 있습니다.

+0

응답 속도가 좋지만 프로그래밍에 아직 익숙하지 않아 C#을 읽을 수 없습니다. – Tycholiz

+0

좋아, 그래서 내가 말하는 것은 공간에서 문자열을 분할하는 Split 함수 사용 색인을 사용하는 것입니다. 그런 다음 각 결과의 첫 글자를 가져 와서 이니셜을 얻으십시오. VB에서 뭔가 빨리 초안을 작성할 수 있는지 알려주도록하겠습니다. – spinon

+0

답장을 보내 주셔서 감사합니다. 완벽하게 작동했습니다. 건배 – Tycholiz

관련 문제