public class Test01 {//新建一個(gè)類 String s = new String("good");//創(chuàng)建一個(gè)對(duì)象名字為s內(nèi)容為good String[] ss = {"aaa"};//創(chuàng)建一個(gè)名為ss的數(shù)組只有1個(gè)數(shù)量?jī)?nèi)容為aaa public void m_method(String str,String[] sa) {//設(shè)置一個(gè)公共的無(wú)返回值的名為m_method的函數(shù) ()里面是參數(shù) str = "bad";//把bad賦值給str sa[0]="bbb";把bbb賦值給sa的第一個(gè)數(shù)組對(duì)象 } public static void main(String[] args) {//程序入口 Test01 t1 = new Test01();//在Test01里創(chuàng)建一個(gè)名為t1的對(duì)象 t1.m_method(t1.s,t1.ss);//對(duì)象t1調(diào)用test01的m_method函數(shù),t1.s也就是test01類的s也就是good作為第一個(gè)參數(shù),t1.ss也就是test01類里面的ss也就是aaa作為第二個(gè)參數(shù)進(jìn)行運(yùn)行 System.out.println(t1.s+t1.ss[0]); //輸出t1.s的值和t1.ss[0]的值; }
天全網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)2013年至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
1.例如字符串查找、子串、模式匹配等。?當(dāng)在 Lua 中對(duì)字符串做索引時(shí),第一個(gè)字符從 1 開(kāi)始計(jì)算(而不是 C 里的 0 )。 索引可以是負(fù)數(shù),它指從字符串末尾反向解析。 即,最后一個(gè)字符在 -1 位置處,等等。
2.字符串庫(kù)中的所有函數(shù)都在表 string 中。?它還將其設(shè)置為字符串元表的 __index 域。 因此,你可以以面向?qū)ο蟮男问绞褂米址瘮?shù)。 例如,string.byte(s,i) 可以寫(xiě)成 s:byte(i)。
字符串庫(kù)假定采用單字節(jié)字符編碼。
string.byte (s [, i [, j]])
返回字符 s[i], s[i+1], ... ,s[j] 的內(nèi)部數(shù)字編碼。 i 的默認(rèn)值是 1 ; j 的默認(rèn)值是 i。 這些索引以函數(shù) string.sub 的規(guī)則修正。
數(shù)字編碼沒(méi)有必要跨平臺(tái)。
string.char (···)
接收零或更多的整數(shù)。 返回和參數(shù)數(shù)量相同長(zhǎng)度的字符串。 其中每個(gè)字符的內(nèi)部編碼值等于對(duì)應(yīng)的參數(shù)值。
數(shù)字編碼沒(méi)有必要跨平臺(tái)。
string.dump (function [, strip])
3.返回包含有以二進(jìn)制方式表示的(一個(gè) 二進(jìn)制代碼塊 )指定函數(shù)的字符串。?之后可以用 load 調(diào)用這個(gè)字符串獲得 該函數(shù)的副本(但是綁定新的上值)。 如果 strip 為真值, 二進(jìn)制代碼塊不攜帶該函數(shù)的調(diào)試信息 (局部變量名,行號(hào),等等。)。
帶上值的函數(shù)只保存上值的數(shù)目。 當(dāng)(再次)加載時(shí),這些上值被更新為 nil 的實(shí)例。 (你可以使用調(diào)試庫(kù)按你需要的方式來(lái)序列化上值,并重載到函數(shù)中)
string.find (s, pattern [, init [, plain]])
4.查找第一個(gè)字符串 s 中匹配到的 pattern )。?如果找到一個(gè)匹配,find 會(huì)返回 s 中關(guān)于它起始及終點(diǎn)位置的索引; 否則,返回 nil。 第三個(gè)可選數(shù)字參數(shù) init 指明從哪里開(kāi)始搜索; 默認(rèn)值為 1 ,同時(shí)可以是負(fù)值。 第四個(gè)可選參數(shù) plain 為 true 時(shí), 關(guān)閉模式匹配機(jī)制。 此時(shí)函數(shù)僅做直接的 “查找子串”的操作, 而 pattern 中沒(méi)有字符被看作魔法字符。 注意,如果給定了 plain ,就必須寫(xiě)上 init 。
如果在模式中定義了捕獲,捕獲到的若干值也會(huì)在兩個(gè)索引之后返回。
string.format (formatstring, ···)
5.返回不定數(shù)量參數(shù)的格式化版本, 格式化串為第一個(gè)參數(shù)(必須是一個(gè)字符串)。格式化字符串遵循 ISO C 函數(shù) sprintf 的規(guī)則。 不同點(diǎn)在于選項(xiàng) *, h, L, l, n, p 不支持, 另外還增加了一個(gè)選項(xiàng) q。 q 選項(xiàng)將一個(gè)字符串格式化為兩個(gè)雙引號(hào)括起,對(duì)內(nèi)部字符做恰當(dāng)?shù)霓D(zhuǎn)義處理的字符串。 該字符串可以安全的被 Lua 解釋器讀回來(lái)。
希望能幫到你,謝謝!
1、C語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供了一系列文件操作函數(shù)。文件操作函數(shù)一般以f+單詞的形式來(lái)命名(f是file的簡(jiǎn)寫(xiě)),其聲明位于stdio.h頭文件當(dāng)中。例如:fopen、fclose函數(shù)用于文件打開(kāi)與關(guān)閉;fscanf、fgets函數(shù)用于文件讀??;fprintf、fputs函數(shù)用于文件寫(xiě)入;ftell、fseek函數(shù)用于文件操作位置的獲取與設(shè)置。一般的C語(yǔ)言教程都有文件操作一章,可以找本教材進(jìn)一步學(xué)習(xí)。2、例程:
#includestdio.hint a;char b,c[100];int main(){ FILE * fp1 = fopen("input.ini", "r");//打開(kāi)輸入文件 FILE * fp2 = fopen("output.ini", "w");//打開(kāi)輸出文件 if (fp1==NULL || fp2==NULL) {//若打開(kāi)文件失敗則退出 puts("不能打開(kāi)文件!"); rturn 0; } fscanf(fp1,"%d",a);//從輸入文件讀取一個(gè)整數(shù) b=fgetc(fp1);//從輸入文件讀取一個(gè)字符 fgets(c,100,fp1);//從輸入文件讀取一行字符串 printf("%ld",ftell(fp1));//輸出fp1指針當(dāng)前位置相對(duì)于文件首的偏移字節(jié)數(shù) fputs(c,fp2);//向輸出文件寫(xiě)入一行字符串 fputc(b,fp2);//向輸出文件寫(xiě)入一個(gè)字符 fprintf(fp2,"%d",a);//向輸出文件寫(xiě)入一個(gè)整數(shù) fclose(fp1);//關(guān)閉輸入文件 fclose(fp2);//關(guān)閉輸出文件,相當(dāng)于保存 return 0;}
通過(guò)String.valueOf(char)函數(shù)把字符轉(zhuǎn)化成字符串舉例char a='A';//定義一個(gè)字符aString str = String.valueOf(a);//把字符a轉(zhuǎn)換成字符串str
go語(yǔ)言的字符串是UTF-8編碼的、不可改變的字節(jié)序列。
要修改字符串,只能以原串為基礎(chǔ),創(chuàng)建一個(gè)新串。下面的圖中是一個(gè)參考示例,提供了以原串為藍(lán)本,創(chuàng)建新串的兩種方法。
代碼
輸出
按值傳遞函數(shù)參數(shù),是拷貝參數(shù)的實(shí)際值到函數(shù)的形式參數(shù)的方法調(diào)用。在這種情況下,參數(shù)在函數(shù)內(nèi)變化對(duì)參數(shù)不會(huì)有影響。
默認(rèn)情況下,Go編程語(yǔ)言使用調(diào)用通過(guò)值的方法來(lái)傳遞參數(shù)。在一般情況下,這意味著,在函數(shù)內(nèi)碼不能改變用來(lái)調(diào)用所述函數(shù)的參數(shù)??紤]函數(shù)swap()的定義如下。
代碼如下:
/* function definition to swap the values */
func swap(int x, int y) int {
var temp int
temp = x /* save the value of x */
x = y /* put y into x */
y = temp /* put temp into y */
return temp;
}
現(xiàn)在,讓我們通過(guò)使實(shí)際值作為在以下示例調(diào)用函數(shù)swap():
代碼如下:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int = 200
fmt.Printf("Before swap, value of a : %d\n", a )
fmt.Printf("Before swap, value of b : %d\n", b )
/* calling a function to swap the values */
swap(a, b)
fmt.Printf("After swap, value of a : %d\n", a )
fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x, y int) int {
var temp int
temp = x /* save the value of x */
x = y /* put y into x */
y = temp /* put temp into y */
return temp;
}
讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :100
After swap, value of b :200
這表明,參數(shù)值沒(méi)有被改變,雖然它們已經(jīng)在函數(shù)內(nèi)部改變。
通過(guò)傳遞函數(shù)參數(shù),即是拷貝參數(shù)的地址到形式參數(shù)的參考方法調(diào)用。在函數(shù)內(nèi)部,地址是訪問(wèn)調(diào)用中使用的實(shí)際參數(shù)。這意味著,對(duì)參數(shù)的更改會(huì)影響傳遞的參數(shù)。
要通過(guò)引用傳遞的值,參數(shù)的指針被傳遞給函數(shù)就像任何其他的值。所以,相應(yīng)的,需要聲明函數(shù)的參數(shù)為指針類型如下面的函數(shù)swap(),它的交換兩個(gè)整型變量的值指向它的參數(shù)。
代碼如下:
/* function definition to swap the values */
func swap(x *int, y *int) {
var temp int
temp = *x /* save the value at address x */
*x = *y /* put y into x */
*y = temp /* put temp into y */
}
現(xiàn)在,讓我們調(diào)用函數(shù)swap()通過(guò)引用作為在下面的示例中傳遞數(shù)值:
代碼如下:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 100
var b int= 200
fmt.Printf("Before swap, value of a : %d\n", a )
fmt.Printf("Before swap, value of b : %d\n", b )
/* calling a function to swap the values.
* a indicates pointer to a ie. address of variable a and
* b indicates pointer to b ie. address of variable b.
*/
swap(a, b)
fmt.Printf("After swap, value of a : %d\n", a )
fmt.Printf("After swap, value of b : %d\n", b )
}
func swap(x *int, y *int) {
var temp int
temp = *x /* save the value at address x */
*x = *y /* put y into x */
*y = temp /* put temp into y */
}
讓我們把上面的代碼放在一個(gè)C文件,編譯并執(zhí)行它,它會(huì)產(chǎn)生以下結(jié)果:
Before swap, value of a :100
Before swap, value of b :200
After swap, value of a :200
After swap, value of b :100
這表明變化的功能以及不同于通過(guò)值調(diào)用的外部體現(xiàn)的改變不能反映函數(shù)之外。
當(dāng)前標(biāo)題:go語(yǔ)言字符串處理函數(shù),go語(yǔ)言截取字符串
文章路徑:http://jinyejixie.com/article30/hsijpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)站維護(hù)、網(wǎng)站改版、響應(yīng)式網(wǎng)站、標(biāo)簽優(yōu)化、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)