大家好,我是码农先森。
输出
在 PHP 语言中的输出比较简单,直接使用 echo 就可以。此外,在 PHP 中还有一个格式化输出函数 sprintf 可以用占位符替换字符串。
<?phpecho '码农先森';
echo sprintf('码农:%s', '先森');
在 Go 语言中调用它的输出函数之前还需要先引入 fmt 包,这个包提供了非常全面的输入输出函数。如果只输出普通字符串,那么使用 Print 函数即可。此外,在 Go 中也有一个同名同功能的字符串格式化函数 Sprintf。
package mainimport "fmt"func main() {fmt.Print("码农先森")fmt.Print(fmt.Sprintf("码农:%s", "先森"))
}
长度
在 PHP 语言中使用函数 strlen 计算字符串的长度。
<?phpecho strlen('码农先森');
在 Go 语言中使用函数 len 来计算字符串长度,这里因为要统计汉字的数量,因此引入了 unicode/utf8 包。
package mainimport ("fmt""unicode/utf8"
)func main() {fmt.Print(len("码农先森"))fmt.Print(utf8.RuneCountInString("码农先森"))
}
截取
PHP有一个substr函数用来截取任意一段字符串。
<?php
echo substr('Hello World', 0, 3);
Go中的写法有些特别,它是将字符串当做数组,截取其中的某段字符,比较麻烦的是,在PHP中可以将第二个参数设置为负数进行反向取值,但是Go无法做到。
package mainimport ("fmt"
)func main() {str := "Hello World"fmt.Print(str[0:3])
}
搜索
在 PHP 语言中使用 strpos 查询某个字符串出现的位置。
<?phpecho strpos('Hello World', 'l');
在 Go 语言中先引入 strings 包,再调用 Index 函数来实现。
package mainimport ("fmt""strings"
)func main() {fmt.Print(strings.Index("Hello World", "l"))
}
替换
在 PHP 语言中替换字符串使用 str_replace 内置函数。
<?phpecho str_replace('World', 'China', 'Hello,World');
在 Go 语言中使用 strings 包中的函数 Replace,不同的是第四个参数是必填的,它代表替换的次数,为 0 则代表不替换。
package mainimport ("fmt"
)func main() {fmt.Print(strings.Replace("Hello World", "World", "China", 1))
}
连接
在 PHP 语言中最经典的就是用点来连接字符串。此外,也可以使用 implode 函数连接。
<?phpecho 'Hello' . ',' . 'World';
echo implode(["Hello", "World"], ",")
在 Go 语言中用加号来连接字符串。此外,还可以使用 strings 包中的 Join 函数连接。
package mainimport ("fmt"
)func main() {fmt.Print("Hello" + "," + "World") str := []string{"Hello", "World"}fmt.Print(strings.Join(str, ","))
}
分割
在 PHP 语言中可以使用 explode 函数分割字符串。
<?phpecho explode("Hello,World", ",")
在 Go 语言中可以使用 strings 包中的 Split 函数连接。
package mainimport ("fmt"
)func main() {fmt.Print(strings.Split("Hello,World", ","))
}
总结
以上是 PHP 语言与 Go 语言在常用的字符串处理场景中的用法,字符串处理在实际的编程中使用的最为频繁,因此我们需要很好的掌握它。
推荐
PHP 语言中的函数是如此强大、丰富、便利,PHP 程序员转到 Go 语言来,发现很多方法都需要自己封装,很不适应。因此给大家推荐一个很好网站,可以直接通过 PHP 语言中的函数找到对应在 Go 语言中的函数,这简直是转 Go 语言 PHP 程序员的福音,网站地址:https://www.php2golang.com/
欢迎关注、分享、点赞、收藏、在看,我是码农先森。