2014년 6월 29일 일요일

[C#문자열,String,닷넷문자열,C#교육,C#학원,닷넷학원,문자열참조변수,String인덱스]이번 강좌에서는 자주 사용되는 String(문자열)에 대해 알아 보도록 하겠습니다.

[C#문자열,String,닷넷문자열,C#교육,C#학원,닷넷학원,문자열참조변수,String인덱스]이번 강좌에서는 자주 사용되는 String(문자열)에 대해 알아 보도록 하겠습니다.


문자열(string, System.String)
C#에서의 문자열은 string ( = System.String) 객체 이며, 내부 문자는 유니코드를 사용 합니다.
당연히 객체이므로 참조형 변수 입니다.(C에서는 문자열이 문자형의 배열 입니다.)

string s="Hello";
s[0] = 'c'; //compile time error
string의 경우 특정 인덱스 위치에 문자를 대입 할 수는 없지만 특정 위치의 문자를 불러 올 수는 있다. 따라서 아래의 예는 가능합니다.
string s = “school”;
Char c = s[2];
문자열의 선언
string str = “ ABC ” --> new 를 사용하지 않고도 인스턴스 생성이 가능하다 .

메소드
Length 프로퍼티 : 문자열 길이
Insert (index, str) : 문자열 index 위치에 str을 추가한다. "ABCD".Insert(2,"AA") --> "ABAACD"
Concat(str1, str2, …) 파라미터 문자열을 모두 합하여 새로운 문자열을 반환
str1+str2 : str1과 str2를 합친다.
ToUpper(), ToLower() --> 대문자 또는 소문자로 바꿉니다.
Trim(), TrimStart(), TrimEnd() --> 앞뒤 공백 자르기, 앞 공백 자르기, 뒷 공백 자르기
Replace(A문자열, B문자열) --> 어떤 문자열 내에서 A문자열을 찾아 B문자열로 바꾼다. 아래는 Replace를 이용 하여 공백을 제거 하는 예입니다.
예) "12 34".Replace(" ", "") --> "1234"
IndexOf(str), LastIndexOf(str) --> 문자열이 처음 또는 마지막으로 나타나는 곳의 위치를 리턴(위치는 맨앞이 0)
Substring(index), Substring(index, length) --> index 위치부터 length 길이 만큼 잘름. Length없으면 끝까지의 문자열을 잘라냄
String.Format(formatString, args) --> Console.Write 메소드의 화면 출력 값과 동일한 string으로 반환.
예) s=String.Format(“{0}:{1}”, “boo”, 1234);
s=“boo:1234”
==, != 연산자 --> 문자열간의 비교를 위한 연산자, === 인 경우 문자열이 메모리 공간의 다른 곳에 위치하여 있어도 같은 값을 가지면 OK
str1.Equals(str2) 메소드 --> (str1 == str2) 와 같은 결과를 돌립니다.
str1.CompareTo(str2) 또는, string.Compare(str1, str2) --> str1 이 srt2 보다 크면 1, 작으면 -1 , 같으면 0을 반환

기타 다른 메소드 및 이해는 예제를 통해 익히세요~

[예제]

using System;
using System.Text;
class StringTest {
public static void Main() {
//----------------------------------------------------------------------- Equals Method
// Equals 메소드는 두 스트링 객체가 같은값을 가지는지 비교 한다.
//-----------------------------------------------------------------------
//StringBuilder Represents a mutable string of characters
StringBuilder sb = new StringBuilder("ab");
sb.Append("c");
String str1 = "abc";
string str2 = null; //string의 's'가 소문자
Object o2 = null;
Console.WriteLine();
Console.WriteLine("sb --> {0} ", sb.ToString());
Console.WriteLine("str1.Equals(sb) --> {0} ", str1.Equals(sb));
str2 = sb.ToString();
o2 = str2;

Console.WriteLine("str1.Equals(str2) --> {0} " , str1.Equals(str2));
Console.WriteLine("Object o2 --> '{0}'", o2);
Console.WriteLine("str1.Equals(o2) --> {0}", str1.Equals(o2));
//Console.WriteLine("o2.ToString() --> '{0}'", o2.ToString());
//Console.WriteLine("str1.Equals(o2.ToString()) --> {0}", str1.Equals(o2.ToString()));
Console.WriteLine("String.Equals(str1, str2) --> {0}", String.Equals(str1, str2));
//---------------------------------------------------------------------------------- Compare Method
// Compare는 두 스트링 객체를 비교해서 두 문자열이 같으면 0, 작으면 -1, 크면 1을 돌림
// Compare는 static Method 임!!
//-----------------------------------------------------------------------------------
String s1 = "abc";
string s2 = "abcd";
string s3 = "abc";
Console.WriteLine("String.Compare('abc','abcd') --> {0}", String.Compare(s1, s2));
Console.WriteLine("String.Compare('abc','abc') --> {0}", String.Compare(s1, s3));
//---------------------------------------------------------------------------- Concat Method
// Concat 메소드는 메소드안의 인자로 제공되는 파라미터를 합하여 새 문자열 생성
// Concat 메소는는 static Method 임 !!
//----------------------------------------------------------------------------
string s4 = String.Concat("Hello"," ","World");
Console.WriteLine("String.Concat('Hello',' ','World') --> {0}", s4);
//--------------------------------------------------------------------------- Copy Method
// Copy 메소드는 인자로 제공되는 String의 새로운 인스턴스(복제품)을 만들어 할당
// Copy 메소는는 static Method 임 !!
//----------------------------------------------------------------------------
String s5 = "abc";
String s6 = String.Copy(s5);
s5 = "abcd";
Console.WriteLine("s5 --> {0}, s6 --> {1}", s5, s6);
//---------------------------------------------------------------------------- CopyTo Method
// CopyTo 메소드는 문자열을 유니코드 배열로 복사 해 준다.
//----------------------------------------------------------------------------
string s7 = "Hello, World";
char[] c = new char[12];
s7.CopyTo(7, c, 0, 5); //0:0번째 부터 복사, c : c에 복사, c의 0번째에서 5개

Console.WriteLine(c);
//---------------------------------------------------------------------------- IndexOf Method
// IndexOf 메소드는 문자가 처음 나타나는 인덱스를 Return
//----------------------------------------------------------------------------
Console.WriteLine("'Hello World'.IndexOf('o') --> {0}", s7.IndexOf("o"));
//---------------------------------------------------------------------------- PadLeft Method
// PadLeft 메소드는 전체 사이즈 20만큼 우정렬 시킨 후 왼쪽을 '*'로 채운다.
//----------------------------------------------------------------------------
Console.WriteLine("'Hello World'.PadLeft('*') --> {0}", s7.PadLeft(20, '*'));
//---------------------------------------------------------------------------- Replace Method
// Replace 메소드는 첫번째 문자열을 인자로 제공되는 두번째 문자열로 바꾼다.
//----------------------------------------------------------------------------
Console.WriteLine("'Hello World'.Replace('World','C#') --> {0}", s7.Replace("World","C#"));
//---------------------------------------------------------------------------- Split Method
// Split 메소드는 문자열을 지정 한 Seperator로 분리해서 문자열 배열을 반환
//----------------------------------------------------------------------------
string[] sa = new string[12];
char[] c1 = new char[] {','};
string s8 = "10,20,30";
sa = s8.Split(c1);
Console.WriteLine("'10,20,30',Split(',') [0] --> {0}", sa[0]);
Console.WriteLine("'10,20,30',Split(',') [1] --> {0}", sa[1]);
Console.WriteLine("'10,20,30',Split(',') [2] --> {0}", sa[2]);
//---------------------------------------------------------------------------- Substring Method
// Substring 메소드는 문자열을 시작 인덱스 부터 Length만큼 돌려 준다.
//----------------------------------------------------------------------------
Console.WriteLine("'Hello World'.Substring(0, 5) --> {0}", "Hello World".Substring(0, 5));
Console.WriteLine("'sss'.GetType() --> {0}", "sss".GetType());
}
}
[결과]
sb --> abc
str1.Equals(sb) --> False
str1.Equals(str2) --> True
Object o2 --> 'abc'
str1.Equals(o2) --> True
String.Equals(str1, str2) --> True
String.Compare('abc','abcd') --> -1
String.Compare('abc','abc') --> 0
String.Concat('Hello',' ','World') --> Hello World
s5 --> abcd, s6 --> abc
World




오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(6/30)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(6/30)[기업100%환급]안드로이드개발자과정
(7/07)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/07)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/07)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/07)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정
(7/14)[기업100%환급]SQL기초에서 Schema Object까지

평일야간(19:00~21:50) 개강
(7/01)안드로이드개발자과정
(7/01)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/02)Spring3.X, MyBatis, Hibernate실무과정
(7/02)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(7/02)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/03)웹퍼블리싱 마스터
(7/15)SQL기초에서실무까지
(7/15)MyBatis3.X, Hibernate4.X ORM실무과정
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지

주말(10:00~17:50) 개강
(7/05)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(7/05)SQL초보에서 Schema Object까지
(7/12)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(7/12)MyBatis3.X, Hibernate4.X ORM실무과정
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/13)C#,ASP.NET마스터
(7/19)Spring3.X, MyBatis, Hibernate실무과정
(7/19)웹퍼블리싱 마스터
(7/19)안드로이드개발자과정

주말저녁(18:30~22:20) 개강
(7/19)JAVA,Network&WEB&Framework
(8/09)SQL기초에서실무까지

댓글 없음:

댓글 쓰기