2012-11-21 3 views
0

아래 코드를 가지고 있지만 문자열에 최대 15 자만 표시하고 싶습니다. 어떻게해야합니까?C에서 # for 루프를 제한하는 방법

string star = ""; 
for (int i = 0; i < Model.orgInternalcontact.User.Password.Length; i++) 
{ 
    string mem = "*"; 
    star = star + mem; 
} 
+0

한 라이너'문자열 스타 = 새 문자열 ('*', Math.Min (15, Model.orgInternalcontact.User.Password.Length))' – vcsjones

+0

무엇을하기를 원하는거야? –

+0

@vcsjones'Math.Min'보다는'Math.Max'를 사용하기 때문에 작동하지 않습니다. –

답변

6
string star = ""; 
for (int i = 0; i < Model.orgInternalcontact.User.Password.Length && i < 15; i++) 
{ 
    string mem = "*"; 
    star = star + mem; 
} 

는 당신을위한의 두 번째 부분에있는 조건문을 가질 수 있습니다.

+3

사실 16 문자가 아니겠습니까? =) –

+0

Maaaaaaaaaybe. 적어도 더 이상은 아닙니다. –

+0

고마워이 작품은 위대한 – Ben

2

는 다음을 수행 : 당신의 문에 여러 비교를 할 수 있습니다

string star = ""; 
for (int i = 0; i < Math.Min(15, Model.orgInternalcontact.User.Password.Length); i++) 
{ 
    string mem = "*"; 
    star = star + mem; 
} 
+0

고마워,하지만 그 짧은로 다른 사람을 위해 갈거야. 하지만 고마워 – Ben

2
string star = ""; 
for (int i = 0; i < Model.orgInternalcontact.User.Password.Length && i < 15; i++) 
{ 
    string mem = "*"; 
    star = star + mem; 
} 

.

+0

고마워,이 작품은 대단한데 – Ben

4
string star = new string('*', 
    Math.Min(Model.orgInternalcontact.User.Password.Length, 15)); 
+1

+1 clunky하고 비효율적 인 문자열 연결을 제거합니다. – Servy

1
string star = ""; 
string mem = "*"; 
var count = Math.Min(15, Model.orgInternalcontact.User.Password.Length); 
for (int i = 0; i < count ; i++) 
{ 
    star = star + mem; 
} 
관련 문제