前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >蓝桥杯省赛基础知识点 | 简单字符串处理

蓝桥杯省赛基础知识点 | 简单字符串处理

作者头像
张哥编程
发布2024-12-13 12:39:25
发布2024-12-13 12:39:25
19600
代码可运行
举报
文章被收录于专栏:云计算linux云计算linux
运行总次数:0
代码可运行

简单字符串题目,也就是不涉及复杂字符串算法的简单题。在蓝桥杯省赛中很常见,几乎每届都有。

字符串算法有:进制哈希、Manacher、字典树、回文树、KMP 、AC自动机、后缀树和后缀数组。

本文介绍 C++、Java、Python的字符串处理函数。

01、C++的字符串函数

find()函数:查找

substr()函数:查子串

replace()函数:替换

insert()函数:插入

append()函数:添加字符串

swap()函数:交换字符串

compare():字符串比较

有时候输入的一行字符中有空格,可以用gets()读取包括空格的这一行。

下面的可执行代码,演示了这些函数的应用。

代码语言:javascript
代码运行次数:0
运行
复制
#include<bits/stdc++.h>
using namespace std;
int main(){
    string str ="123456789abcdefghiaklmn";

    for(int i=0;i<10;i++) //把str看成一个字符串数组
        cout<<str[i]<<" ";
    cout << endl;

//find函数
    cout<<"123的位置: "<<str.find("123")<<endl;
//输出:123的位置: 0
    cout<<"34在str[2]到str[n-1]中的位置: "<<str.find("34",2)<<endl;
//输出:34在str[2]到str[n-1]中的位置: 2
    cout<<"ab在str[0]到str[12]中的位置: "<<str.rfind("ab",12)<<endl;
//输出:ab在str[0]到str[12]中的位置: 9

//substr()函数
    cout<<"str[3]及以后的子串:"<<str.substr(3)<<endl;
//输出:str[3]及以后的子串:456789abcdefghijklmn
//若小于限制长度则报错
    cout<<"从str[2]开始的4个字符:"<<str.substr(2,4)<<endl;
//输出:从str[2]开始的4个字符:3456

//find()函数
    str.replace(str.find("a"), 5, "@#");
    cout<<str<<endl;
//输出:123456789@#fghiaklmn

//insert()函数
    str.insert(2, "***");
    cout<<"从2号位置插入: "<<str<<endl;
//输出:12***3456789@#fghiaklmn

//添加字符串:append()函数
    str.append("$$$");
    cout<<"在字符串str后面添加字符串:"<<str<<endl;
//输出:12***3456789@#fghiaklmn$$$

//字符串长度
    cout<<str.size()<<endl;
    cout<<str.length()<<endl;

//交换字符串:swap()函数
    string str1="aaa",str2="bbb";
    swap(str1, str2);
    cout<<str1<<" "<<str2<<endl;

//字符串比较函数:compare(),相等输出0,不等输出1
    cout<<str1.compare(str2)<<endl;
    if(str1==str2) cout <<"=="; //直接比较也行
    if(str1!=str2) cout <<"!=";

    return 0;
}

02、Python字符串处理

Python的字符处理十分简洁。下面的可执行代码,给出各种应用的例子。

代码语言:javascript
代码运行次数:0
运行
复制
str1="12345678abcdefghi"
print(str1) #输出:12345678abcdefghi
print(str1[3]) #输出:4
print(str1[2:5]) #输出:345 截取一部分,左闭右开
print(str1[:5]) #输出:12345
print(str1[2:]) #输出:345678abcdefghi
print(len(str1)) #输出字符串长度:17

str2="***"
str3="abc"
#合并字符串:+
str12=str1+str2
print(str12) #输出:12345678abcdefghi***
#也可以这样合并字符串
print(''.join([str1, str2])) #输出:12345678abcdefghi***

str_list = list(str1)
str_list.insert(4, "***") #在str1[4]插入
aa = ''.join(str_list)
print(aa) #输出:1234***5678abcdefghi

#重复输出
print(str2*2) #输出:******

#用\输出特殊符号
print("\\ \" \n ") #输出:\ " 换行

#查找子串
print(str3 in str1) #输出:True
print(str3 not in str1) #输出:False

str2,str3 = str3,str2 #交换
print(str2) #输出:abc

#比较
print(str2 == str3) #输出:False
print(str2 != str3) #输出:True

#str.find(str, beg=0, end=len(string)) 指定范围查找
print(str1.find("345")) #输出:2
print(str1.find("345", 10)) #输出:-1
print(str1.find("456", 2,20)) #输出:3

03、Java字符串函数

Java的字符串处理函数很丰富。下面给出部分函数的说明。

(1)substring()

代码语言:javascript
代码运行次数:0
运行
复制
返回指定位置的子串。有两种形式:
String substring(int startIndex),起始索引(包括startIndex), 索引从 0 开始。
String substring(int startIndex,int endIndex)
起始索引(包括startIndex), 索引从 0 开始;结束索引(不包括endIndex)。
String Str = new String("This is haha");
System.out.println(Str.substring(4) ); //输出:is haha
System.out.println(Str.substring(4, 10) ); //输出:is ha

(2)concat()

public String concat(String s)

在字符串后面连接s,返回新字符串。

代码语言:javascript
代码运行次数:0
运行
复制
String s = "www:";
s = s.concat("abcde.com");
System.out.println(s); //输出:www.abcde.com

(3)replace()

替换。

public String replace(char searchChar, char newChar)

用newChar字符替换字符串中出现的所有 searchChar 字符,并返回替换后的新字符串。

代码语言:javascript
代码运行次数:0
运行
复制
String Str = new String("abcde");
System.out.println(Str.replace('c', 'T')); //输出:abTde

(4)trim()

删除字符串的头尾空格。

(5)valueOf()

返回给定参数的数值,参数可以是原生数据类型, String等。

代码语言:javascript
代码运行次数:0
运行
复制
static Integer valueOf(int i)

static Integer valueOf(String s)

static Integer valueOf(String s, int radix)

Float a = Float.valueOf("80");
System.out.println(a); //输出:80.0

(6)toLowerCase()

转换为小写

char toLowerCase(char ch)

System.out.println(Character.toLowerCase(‘a’)); //输出:a System.out.println(Character.toLowerCase(‘A’)); //输出:a

(7)toUpperCase() 转换为大写

代码语言:javascript
代码运行次数:0
运行
复制
public String toUpperCase()

String Str = new String("www.com");
System.out.println( Str.toUpperCase() ); //输出:WWW.COM

(8)length() 字符串的长度

代码语言:javascript
代码运行次数:0
运行
复制
String Str1 = new String("www.com");
System.out.println(Str1.length()); //输出:7

(9)charAt() 截取一个字符 public char charAt(int index)

String s = “www.com”; char result = s.charAt(6); System.out.println(result); //输出:m

(10)getChars() 截取多个字符

将字符从字符串复制到目标字符数组。

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

sourceStart – 字符串中要复制的第一个字符的索引。

sourceEnd – 字符串中要复制的最后一个字符之后的索引。

target 目标数组。

targetStart 目标数组中的起始偏移量。

代码语言:javascript
代码运行次数:0
运行
复制
String Str1 = new String("www.abcde.com");
char[] Str2 = new char[6];
Str1.getChars(4, 10, Str2, 0);
System.out.println(Str2 ); //输出:abcde

(11)equals()和equalsIgnoreCase()

比较两个字符串

(12)regionMatches()

检测两个字符串在一个区域内是否相等。

(13)startsWith()和endsWith()

startsWith()检测字符串是否以指定的字符串开始。endWith()检测字符串是否以指定的字符串结束。

(14)compareTo()和compareToIgnoreCase()

比较字符串

(15)indexOf()和lastIndexOf()

indexOf() 查找字符或者子串第一次出现的地方。

lastIndexOf() 查找字符或者子串后一次出现的地方。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档