Chapter 5. 文字列


今日は文字列をもっと勉強したいです.
文字列を初期化する方法から、文字列を演算したり修正したりする方法まで、勉強して記録します.

1.文字列ベース


1-1文字列の定義


文字列を定義する方法は大きく2つあります.
var string1 string = "조성권"		// Case 1. string으로 Type 선언
string1 := "조성권"				// Case 2. := 사용
以上の2つの方法はいずれも誤りなく行われた.
ただし、違いがある場合は、=と書く場合は、変数宣言と同時に初期化する必要があります.

1-2文字列の長さを求めます


前述したように、文字列を生成した後も、文字列の長さを決定するために多く使用される.
次の例では、一緒に説明します.
var string1 string = "조성권"
var string2 string = "Hello"

fmt.Println("string1's length: ", len(string1))	// 9: UTF-8 인코딩의 Byte 길이
fmt.Println("string2's length: ", len(string2))	// 5: 알파벳 길이
上の例から分かるように、ハングルは私たちが望んでいる実際の長さではなく、Byteの長さです.
実際の長さを求めたい場合は、以下のように記入します.
import "unicode/utf8" // import에 라이브러리 추가
			.
            		.
fmt.Println("string1.length: ", utf8.RuneCountInString(string1)) // 2: 실제 한글 길이
utf8.RunCountInString(String):文字列の実際の長さを計算する関数

2.文字列演算


2-1文字列のマージ

var string3 string = "Hello"
var string4 string = "world"

string5 := string3 + string4	// Case 1. := 사용하기

var string5 string
string5 = string3 + string4		// Case 2. 선언 후, 정의
上記の例では、文字列をマージするときに使用される演算子は「+」です.
これは他の言語と似ているので、あまり難しくないようです.

2-2文字列比較


goangは文字列を比較する際に「==」演算子を使用します.
では、例を見てみましょう.
var string6 string = "Hello"
var string7 string = "world"
var string8 string = "hello"
var string9 string = "Hello"


fmt.Println("string6 == string7? ", string6 == string7)	// false
fmt.Println("string6 == string8? ", string6 == string8) // false
fmt.Println("string6 == string9? ", string6 == string9) // true
上記の例を実行すると、各要素を比較すると結果(trueまたはfalse)が得られます.
文字列の違い(大文字と小文字を含む)を確認し、出力の結果を決定できます.これは、以降の条件文で最も多く使用されます.

2-3文字列要素出力


文字列内の各要素は配列形式で格納されていると考えられる.
「Hello」という文字列があると仮定すると、インデックスは0から4の間であり、s[0]='H、s[4]='oと見なすことができる.
では、これらの文字を印刷する方法を見てみましょう.
var string5 = "HelloWorld"

fmt.Println("string5[0]: ", string5[0]) // 72: 'H'라는 문자의 10진수 값
fmt.Printf("string5[0]: %c\n", string5[0]) // H: 실제 문자
上記の例のようにfmtです.Printlnで文字列要素の値を出力しようとすると、必要な値が見つかりません.
文字列の要素値を出力する場合は、fmtを入力します.Printf関数で出力する必要があります.
Goangは強いオブジェクト指向言語の代表JAVAとプログラム指向言語の代表Cの混合体という感じがします.
JAVAおよびC文字列の要素出力例
  • JAVA
    System.out.println("string5[0]: "+ string5[0]);
  • C
    printf("string5[0]: %c\n", string5[0]);
  • 2つの例からgoangは2つの言語の性質を含む言語であることがわかる.
  • JAVAでは,上記のように必要な要素値を出力できるが,高良では異なるので注意が必要であることを改めて強調する.
  • 3.文字列の変更


    goangは文字列自体を再変更できますが、要素値の一部を変更することはできません.
    私は例題を通じてあなたが何を言っているのかを理解します.
    var string6 string = "HelloWorld"
    string6 := "Hello"
    
    fmt.Println("string6: ", string6)
    
    string6[0] = 'S'	// Compile Error
    上記の例を実行すると、最後の行でCompile Errorが発生することを確認できます.
    なぜなら、上記のようにgoangは文字列の部分を修正できないからです.
    値を変更するには、再定義されたプロセスで行う必要があります.特定のindexを指定して値を変更することはできません.

    4.終了


    今日は文字列の遊び方を学びましょう.
    これは非常に基礎的な部分であり、他の言語に似た部分もあり、あまり困難ではないようです.
    もっと勉強して、高朗を実際のネットワークプログラミングに応用したいです.
    今日のすべてのソースgit
    https://github.com/cho876/Go/tree/main/Prac05