文档库 最新最全的文档下载
当前位置:文档库 › String字符串练习题问题

String字符串练习题问题

String字符串练习题问题
String字符串练习题问题

选择题:

1.下面程序段执行完毕后,cont的值是(c)

String strings[ ]={"string","starting","strong","street","soft"};

int cont=0;

for(int i=0;i

if(strings[i].endsWith("ng"))

cont++;

A. 1

B. 2

C.3

D.4

2.定义字符串:String str=“abcdefg”;则str.indexOf(‘d’)的结果是(c)

A)'d' B) true C) 3 D) 4

3。定义变量b:boolean b=true;则String.valueOf(b)的类型是()

A)boolean B) String C) false D) int

4。下面程序段输出的结果是()

StringBuffer buf1;

String str=”北京2008”;

buf1=new StringBuffer(str);

System.out.println(buf1.charAt(2));

A. 2

B. 京C0 D.null

5. 下面程序段输出的结果是()

String s=”ABCD”;

s.concat(“E”);

s.replace(…C?,?F?);

System.out.println(s);

A) ABCDEF B) ABFDE C) ABCDE D) ABCD

6.下面的语句序列执行完后,n的值是()

int n=0; StringTokenizer st=new StringTokenizer("I wonder should I go,or should I stay?"); while(st.hasMoreTokens())

{ n++; String ss=st.nextToken(); }

A) 9 B) 10 C) 11 D) 8

7. 下面的语句序列执行完后,n的值是()

int n=0;

String str=”I wonder,what?”;

StringTokenizer str2=new StringTokenizer(str,“,?”);

while(str2.hasMoreTokens())

{ str2.nextToken(); }

System.out.println(“n=”+n);

A)2 B) 3 C) 4 D) 5

二填空题。

1定义数组:char charArray[]={…a?,?b?,?c?,?d?,?e?,?f?};则String.valueOf(charArray,2,3)

的结果是_________。

2.下面语句序列输出结果是。

String s=new String(“java program!”);

System.out.println(s.substring(5,8));

3.下面语句输出结果是______________。

char charArray[]={…a?,?b?,?c?,?d?,?e?,?f?};

StringBuffer buf1;

String str=”12345”;

buf1=new StringBuffer(str);

buf1.insert(4,charArray);

System.out.println(buf1.toString());

4.如有以下赋值语句:x=new StringBuffer().append(“a”).append(4). append(“c”).toString; x的类型是________;它的值是________。

5.下面程序的功能是统计以“st”开头的字符串有多少个,完成下面程序填空。

public class Class1

{

public static void main(String args[]) {

String strings[]={“string”,”starting”,”strong”,”street”,”soft”};

int cont=0;

for(int i=0; i<___________;i++)

if(strings[i].____________)

cont++;

System.out.println(cont);

}

}

* 1,给定一个字符串数组。按照字典顺序进行从小到大的排序。

* {"nba","abc","cba","zz","qq","haha"}

* 2,一个子串”nba”在整串中出现的次数。

* "nbaernbatynbauinbaopnba"

* 3,两个字符串中最大相同的子串。

* "qwerabcdtyuiop"

* "xcabcdvbn"

* 4,模拟一个trim功能一致的方法。去除字符串两端的空白

字符串练习一

给定一个字符串数组,按照字典顺序,进行大小写排序

字符串练习二

一个子串在字符串中出现的次数

字符串练习三

找到两个字符串的最大公共子串

字符串练习四

写一个和trim功能相同的方法

1. 给定一个字符串,判断该字符串中是否包含某个子串.如果包含,求出子串的所有出现位置. 如:"abcbcbabcb34bcbd"中,"bcb"子串的出现位置为: 1,7,1

2.字符串和子串均由用户输入

2定义数字字符串数组{"010", "3223", "666", "7890987", "123123"},判断该数字字符串数组中的数字字符串是否是对称的,并逐个输出。

3、从键盘录入一个字符串,统计该串中有大写字母、小写字母、数字各有多少个。比如:

Hello12345World大写:2个小写:8个数字:5个

C语言程序设计实验答案数组、指针与字符串

实验06 数组、指针与字符串(4学时) (第6章数组、指针与字符串) 一、实验目的 二、实验任务 6_1(习题6-25)编写并测试3×3矩阵转置函数,使用数组保存3×3矩阵。 6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实现函数的功能。 6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 6_4 使用string类声明字符串对象,重新实现上一小题。 6_5(习题6-27)声明一个Employee类。 其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。 6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee 类型的对象。 6_7 修改实验4中的people(人员)类。 具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”声明为一个“日期”类内嵌子对象。 用成员函数实现对人员信息的录入和显示。 要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。 在测试程序中声明people类的对象数组,录入数据并显示。

三、实验步骤 1.(编程,习题6-25)编写矩阵转置函数,输入参数为3×3整型数组。 使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。 参考运行结果: ★程序及运行结果: //lab6_1.cpp #include using namespace std; void move(int matrix[][3]){ int temp; for(int i=0;i<3;i++) for(int j=0;j>mat[i][j]; } cout<<"\n输入的3×3矩阵为:"<

C语言字符串指针问题

C语言字符串指针问题 在C语言中,可以用两种方法访问一个字符串。 用字符数组存放一个字符串,然后输出该字符串。 1.main(){ 2.char string[]=”I love China!”; 3.printf("%s\n",string); 4.} 说明:和前面介绍的数组属性一样,string是数组名,它代表字符数组的首地址。 用字符串指针指向一个字符串。 1.main(){ 2.char *string=”I love China!”;

3.printf("%s\n",string); 4.} 字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址。如: char c,*p=&c; 表示p是一个指向字符变量c的指针变量。而: char *s="C Language"; 则表示s是一个指向字符串的指针变量。把字符串的首地址赋予s。 上例中,首先定义string是一个字符指针变量,然后把字符串的首地址赋予string(应写出整个字符串,以便编译系统把该串装入连续的一块内存单元),并把首地址送入string。程序中的:char *ps="C Language"; 等效于: char *ps; ps="C Language"; 输出字符串中n个字符后的所有字符。 1.main(){ 2.char *ps="this is a book";

3.int n=10; 4.ps=ps+n; 5.printf("%s\n",ps); 6.} 运行结果为: book 在程序中对ps初始化时,即把字符串首地址赋予ps,当ps= ps+10之后,ps指向字符“b”,因此输出为"book"。 在输入的字符串中查找有无‘k’字符。 1.main(){ 2.char st[20],*ps; 3.int i; 4.printf("input a string:\n"); 5.ps=st; 6.scanf("%s",ps); 7.for(i=0;ps[i]!='\0';i++) 8.if(ps[i]=='k'){ 9.printf("there is a 'k' in the string\n"); 10.break; 11.} 12.if(ps[i]=='\0') printf("There is no 'k' in the string\n");

Java统计字符串中每个字符出现次数

Java统计字符串中每个字符出现次数package com.perry.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; /** * * @author perry_zhao * 统计一个字符串中每个字符出现的次数(不忽略大小写) */ public class CountStr { public Map count(String str){ System.out.println("需要统计的字符串:"+str+"准备开始统计每个字符出现的次数..."); Map map = new HashMap(); String temp =""; for(int i=0; i

STRING类函数用法总结3

C++中的string类 前言:string的角色 1string使用 1.1充分使用string操作符 1.2眼花缭乱的string find函数 1.3string insert,replace,erase2string和C风格字符串 3string和Charactor Traits 4string建议 5小结 6附录前言:string的角色 C++语言是个十分优秀的语言,但优秀并不表示完美。还是有许多人不愿意使用C或者C++,为什么?原因众多,其中之一就是C/C++的文本处理功能太麻烦,用起来很不方便。以前没有接触过其他语言时,每当别人这么说,我总是不屑一顾,认为他们根本就没有领会C++的精华,或者不太懂C++,现在我接触perl,php,和Shell脚本以后,开始理解了以前为什么有人说C++文本处理不方便了。 举例来说,如果文本格式是:用户名电话号码,文件名name.txt Tom23245332 Jenny22231231 Heny22183942 Tom23245332 ... 现在我们需要对用户名排序,且只输出不同的姓名。 那么在shell编程中,可以这样用: awk'{print$1}'name.txt|sort|uniq 简单吧? 如果使用C/C++就麻烦了,他需要做以下工作: 先打开文件,检测文件是否打开,如果失败,则退出。 声明一个足够大得二维字符数组或者一个字符指针数组 读入一行到字符空间 然后分析一行的结构,找到空格,存入字符数组中。 关闭文件 写一个排序函数,或者使用写一个比较函数,使用qsort排序 遍历数组,比较是否有相同的,如果有,则要删除,copy... 输出信息 你可以用C++或者C语言去实现这个流程。如果一个人的主要工作就是处理这种

C语言练习3(数组)参考答案

C语言(数组) 一、选择题 1. 设有程序: main() { int i,a[11]; printf("给数组赋值:\n"); for (i=0;i<=10;i++) scanf("%d",( )); ... ... printf("输出数组:\n"); for(i=0;i<=10;i++) printf("%d,",( )); } 则在程序中的两个园括号中分别应填入:C A) &a[i]和&a[i] B) a[i]和&a[i] C) &a[i]和a[i] D) a[i]和a[i] 2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ). A) 15 B) 16 C) 30 D) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;i

4. 阅读程序: f(int b[],int n) { int i,r=1; for(i=0;i<=n;i++) r=r*b[i]; return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 以上程序的输出结果是( D ). A) 720 B) 6 C)24 D) 120 5. 以下定义语句中,错误的是( B ). A) int a[ ] = {6,7,8}; B) int n=5, a[n]; C) char a[ ]= "string"; D) char a[5 ]={'0','1','2','3','4'}; 6. 以下描述中正确的是( D ). A) 数组名后面的常量表达式用一对圆括弧括起来 B) 数组下标从1开始 C) 数组下标的数据类型可以是整型或实型 D) 数组名的规定与变量名相同 7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ). A) scanf("%c",a[0]); B) scanf("%s",&a); C) printf("%c",a[3]); D) printf("%s",a); 8.若定义数组int a[10] ,其最后一个数组元素为( C ). A) a[0] B) a[1]

CPPstring类常用函数

C++string类常用函数 string类的构造函数: string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 string类的字符操作: const char &operator[](int n)const; const char &at(int n)const; char &operator[](int n); char &at(int n); operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range异常,下标运算符[]不提供检查访问。 const char *data()const;//返回一个非null终止的c字符数组 const char *c_str()const;//返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目 string的特性描述: int capacity()const; //返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size()const; //返回string对象中可存放的最大字符串的长度 int size()const; //返回当前字符串的大小 int length()const; //返回当前字符串的长度 bool empty()const; //当前字符串是否为空 void resize(int len,char c);//把字符串当前大小置为len,并用字符c填充不足的部分 string类的输入输出操作: string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。 string的赋值: string &operator=(const string &s);//把字符串s赋给当前字符串 string &assign(const char *s);//用c类型字符串s赋值 string &assign(const char *s,int n);//用c字符串s开始的n个字符赋值 string &assign(const string &s);//把字符串s赋给当前字符串 string &assign(int n,char c);//用n个字符c赋值给当前字符串 string &assign(const string &s,int start,int n);//把字符串s中从start开始的n个字符赋给当前字符串 string &assign(const_iterator first,const_itertor last);//把first和last迭代器之间的部

Java字符串查找

Java中字符串中子串的查找共有四种方法,如下: 1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。 indexof()用法说明 indexof() 返回String 对象内第一次出现子字符串的字符位置。 string.indexOf(subString[, startIndex]) 参数 string 必选项。String 对象或文字。 subString 必选项。 要在String 对象中查找的子字符串。 starIndex 可选项。 该整数值指出在String 对象内开始查找的索引。如果省略,则从字符串的开始处查找。 说明 indexOf 方法返回一个整数值,指出String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。 如果startindex 是负数,则startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。 从左向右执行查找。否则,该方法与lastIndexOf 相同。 示例 下面的示例说明了indexOf 方法的用法。 function IndexDemo(str2){ var str1 = "BABEBIBOBUBABEBIBOBU" var s = str1.indexOf(str2); return(s); }

string类中函数介绍

标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函数足以完成我们大多数情况下(甚至是100%)的需要。我们可以用= 进行赋值操作,== 进行比较,+ 做串联(是不是很简单?)。我们尽可以把它看成是C++的基本数据类型。 好了,进入正题……… 首先,为了在我们的程序中使用string类型,我们必须包含头文件。 如下: #include //注意这里不是string.h string.h是C字符串头文件 #include using namespace std; 1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str 初始化为一个空字符串。String类的构造函数和析构函数如下: a) string s; //生成一个空字符串s b) string s(str) //拷贝构造函数生成str的复制品 c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 i) s.~string() //销毁所有字符,释放内存 都很简单,我就不解释了。 2.字符串操作函数 这里是C++字符串的重点,我先把各种操作函数罗列出来,不喜欢把所有函数都看完的人可以在这里找自己喜欢的函数,再到后面看他的详细解释。 a) =,assign() //赋以新值 b) swap() //交换两个字符串的内容 c) +=,append(),push_back() //在尾部添加字符

第4章 数组练习题答案

第4章数组练习题 一、选择题 1.在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量 B)整型表达式C)整型常量或整型表达式 D)任何类型的表达式 2.要说明一个有10个int元素的数组,应当选择语句()。 A) int a[10]; B) int a(10); C) int a[9] D) int a[11] 3.对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5] B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[10] D)因为数组长度与初值的个数不相同,所以此语句不正确 4.已知:int a[10];则对a数组元素的正确引用是()。 A) a[10] B) a[3.5] C) a(5) D) a[10-10] 5.以下对一维整型数组a的正确说明是()。 A) int a(10); B)int n=10,a[n]; C) int n; D)#define SIZE 10; scanf("%",&n); int a[SIZE]; int a[n]; 6.要定义一个int型一维数组art,并使其各元素具有初值89,-23,0,0,0,不正确的定义 语句是()。 A) int art[5]={89,-23}; B) int art[ ]={89,-23}; C) int art[5]={89,-23,0,0,0}; D) int art[ ]={89,-23,0,0,0}; 7.在C语言中,二维数组元素在内存中的存放顺序是()。 A)按行存放 B)按列存放 C)由用户自己定义 D)由编译器决定 8.以下对二维数组a的正确说明是()。 A)int a[3][] B) float a(3,4) C) double a[1][4] D) float a(3)(4) 9.已知:int a[3][4];则对数组元素引用正确的是()。 A)a[2][4] B)a[1,3] C) a[2][0] D) a(2)(1) 10.已知:int a[3][4]={0};则下面正确的叙述是()。 A)只有元素a[0][0]可得到初值0 B)此说明语句是错误的 C)数组a中的每个元素都可得到初值,但其值不一定为0 D)数组a中的每个元素均可得到初值0 11.以下各组选项中,均能正确说明二维实型数组a的是()。 A) float a[3][4]; B) float a(3,4); float a[][4]; float a[3][4]; float a[3][]={{1},{0}}; float a[][]={{0},{0}}; C) f loat a[3][4]; D) float a[3][4]; float a[][4]={{0},{0}}; float a[3][]; float a[][4]={{0},{0},{0}}; float a[][4]; 12.已知:int a[][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是()。 A)2 B)3 C)4 D)无确定值 13.若二维数组a有m列,则在a[i][j]之前的元素个数为()。 A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+1 14.要使字符数组str存放一个字符串"ABCDEFGH",正确的定义语句是()。 A) char str[8]={'A','B','C','D','E','F','G','H'};

C++string类标准库常用函数

C++ string类标准库常用函数 [string类的构造函数] string(const char *s); //用c字符串s初始化 string(int n,char c); //用n个字符c初始化 [string类的字符操作] const char &operator[](int n) const; const char &at(int n) const; char &operator[](int n); char &at(int n); operator[]和at()均返回当前字符串中第n个字符的位置,但at函数提供范围检查,当越界时会抛出out_of_range 异常,下标运算符[]不提供检查访问。 const char *data() const; //返回一个非null终止的c字符数组 const char *c_str() const; //返回一个以null终止的c字符串 int copy(char *s, int n, int pos = 0) const;//把当前串中以pos开始的n个字符拷贝到以s为起始位置的字符数组中,返回实际拷贝的数目 [string的特性描述] int capacity() const; //返回当前容量(即string中不必增加内存即可存放的元素个数) int max_size() const; //返回string对象中可存放的最大字符串的长度 int size() const; //返回当前字符串的大小 int length() const; //返回当前字符串的长度 bool empty() const; //当前字符串是否为空 void resize(int len,char c); //把字符串当前大小置为len,并用字符c填充不足的部分 [string类的输入输出操作] string类重载运算符operator>>用于输入,同样重载运算符operator<<用于输出操作。 函数getline(istream &in,string &s);用于从输入流in中读取字符串到s中,以换行符'\n'分开。 [string的赋值] string &operator=(const string &s); //把字符串s赋给当前字符串 string &assign(const char *s); //用c类型字符串s赋值 string &assign(const char *s,int n); //用c字符串s开始的n个字符赋值 string &assign(const string &s); //把字符串s赋给当前字符串 string &assign(int n,char c); //用n个字符c赋值给当前字符串 string &assign(const string &s,int start,int n);//把s中从start开始的n个字符赋给当前字符串string &assign(const_iterator first,const_iterator last);//把迭代器first和last之间的部分赋给字符串 [string的连接] string &operator+=(const string &s); //把字符串s连接到当前字符串的结尾 string &append(const char *s); //把c类型字符串s连接到当前字符串结尾 string &append(const char *s,int n); //把c类型字符串s的前n个字符连接到当前字符串结尾 string &append(const string &s); //同operator+=() string &append(const string &s,int pos,int n); //把字符串s中从pos开始的n个字符连接到当前字符串的结尾 string &append(int n,char c); //在当前字符串结尾添加n个字符c string &append(const_iterator first,const_iterator last); //把迭代器first和last之间的部分连接到当前字符串的结尾

字符串及数组应用程序设计习题

字符串及数组应用程序设计习题 1、 【字符替换问题】 题目描述:在使用Word 进行文档编辑的过程中,我们都有过使用替换操作的经历,现在就请你运用字符串操作函数来实现一个简化的替换操作! 题目要求:用户输入三行字符串:第一行为原始文本串(长度为100以内);第二行为被替换子串;第三行为新的替换子串,注意替换操作可能不止进行一次。 输入数据:What ’s the meaning of this? this that 输出数据:What ’s the meaning of that? 2、 【简单字符串解压(压缩)问题】 题目描述:在计算机世界里,数据量总是庞大无比,因此压缩的概念无处不大:比如,音、视频信息压缩就产生了MP3、MP4等;网络数据包压缩更是减少了网络传输量,加快了数据传输出速度等,今天,我们也来试试一点简单的字符串解压(压缩)操作! 题目要求:键盘输入一段被压缩的字符信息,其中仅含大小写字母、数字、‘-’字符,并假定其中连续的字符(超过2个字符)已压缩为“起始字符-终止字符”的形式,请编程实现解压缩操作(解压后长度不超过200字符)! 输入数据:a-eio1-49X-Z 输出数据:abcdeio12349XYZ 思考:试试编写压缩操作(仅供同学们讨论实现,较难)。 3、 【归并操作问题】 题目描述:在计算机内部排序方案中,有一种重要的排序思想叫归并排序。归并排序的主要操作是递归分解、回归合并。回归合并操作就是将两个原本有序的序列,合并为一个有序序列。例如:A 序列为{12、14、32};B 序列为{13、15、40、99};则新序列C 为{12、13、14、15、32、40、99}。 题目要求:编程实现用户输入的两个有序子序列的合并操作,合并长度不长过100个元素。 输入数据:如上A 、B 子序列;输出结果:如上C 序列。 4、 【矩阵初始化问题】 题目描述:在计算机算法习题设计中,我们常常需要运用矩阵来记录当前问题的子问题的最优解,进而导出当前问题的最优解,并最终得到全局最优解,因此矩阵的下标运算是学习这类问题的重要基础之一。如下图所示方阵中的A 矩阵称为螺旋矩阵、B 矩阵称为蛇形矩阵。 题目要求:用户输入方阵的维大小,编程完成该方阵的这类初始化(分别实现)。 A 4×4 = B 4×4 = 输入数据:4 输出结果:螺旋矩阵如上图中的A 矩阵、蛇形矩阵如上图中的B 矩阵。 5、 【高精度运算问题】 题目描述:计算机软件功能其实就是扩展硬件功能。比如:计算机中硬件所能表示的最大整数long int 型数为-231 到231 ,要想表示更大的整型数据或其运算就只能依赖整型数组来完成! 题目要求:用户输入两个充分大的整数(C++基本类型是装不下了哟!),请输出它们的和。 输入数据( 两行):15464315464465465 482321654151 输出数据: 和为 15464797786119616 思考:求积(仅供同学们讨论实现,较难),上述数据积为 7458774215133872939813395215。 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 10 11 15 16 4 9 12 14 3 5 8 13 1 2 6 7

Java中截取字符串

Java中截取字符串——经本人验证通过 考题题干 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如"我ABC"4,应该截为"我AB",输入"我ABC汉DEF"6,应该输出"我ABC",而不是"我ABC+汉的半个"。 试题分析 本面试题容易产生困惑的是中文字符和英文字符,在这里需要考虑汉字和英文字符的占用字节数问题,中文字符占两个字节,英文字符占一个字节,理解了这个,就很容易完成本题了。参考答案 具体代码实现如下: //package core_java; import java.util.Scanner; public class jiequzichuan { static String ss; // 要进行截取操作的字符串 static int n; // 截取的字符串的字节数 public static void main(String[] args) { System.out.println("请输入字符串:"); Scanner scStr = new Scanner(System.in); // 从键盘获取字符串 ss = scStr.next(); // 将Scanner对象中的内容以字符串的形式取出来 System.out.println("请输入字节数:"); Scanner scByte = new Scanner(System.in);// 从键盘获取字符串 n = scByte.nextInt(); // 将Scanner对象中的内容以数值的形式取出来 Interception(setValue()); // 方法与方法间的套用 } public static String[] setValue() { // 此方法的作用是将字符串转换成字符串数组 String[] string = new String[ss.length()];// 创建一个字符数组string for (int i = 0; i < string.length; i++) { string[i] = ss.substring(i, i + 1); // 将字符串ss中的第i个字符取出,放入字符数组中string中 } return string; // 将这个字符数组返回 } public static void Interception(String[] string) { int count = 0; String m = "[\u4e00-\u9fa5]"; // 汉字的正则表达试 System.out.println("以每" + n + "字节划分的字符串如下所示:"); for (int i = 0; i < string.length; i++) { if (string[i].matches(m)) {

第七章字符数组与指针练习题参考答案

第七章字符数组与字符串 【题7.29】下面是对s的初始化,其中不正确的是。 A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’}; C)char s[5]=“”;D)char s[5]=“abcdef”; 【题7.30】下面程序段的运行结果是。 char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’}; printf(“%s”,c); A)‘a’‘b’ B)ab C)ab c 【题7.31】对两个数组a和b进行如下初始化 char a[]=“ABCDEF”; char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’}; 则以下叙述正确的是。 A)a与b数组完全相同B)a与b长度相同 C)a和b中都存放字符串D)a数组比b数组长度长 提示:‘\0’是字符串结束的标志 【题7.32】有两个字符数组a、b,则以下正确的输入格式是。 A)gets(a,b); B)scanf(“%s %s”,a,b); C)scanf(“%s %s”,&a,&b);D)gets(“a”),get(“b”); 【题7.33】有字符数组a[80]和b[80],则正确的输出形式是。 A)puts(a,b); B)printf(“%s %s”,a[],b[]); C)putchar(a,b); D)puts(a),puts(b); 【题7.34】下面程序段的运行结果是。 char a[7]=“abcdef”; char b[4]=“ABC”; strcpy(a,b); printf(“%c”,a[5]); A)空格B)\0 C)e D)f 提示:复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’, a[4]=‘e’,a[5]=‘f’, a[6]=‘\0’,

java字符串属性入门

1 join() 方法用于把数组中的所有元素放入一个字符串。 元素是通过指定的分隔符进行分隔的。 语法 arrayObject.join(separator ) 参数 描述 separator 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。 返回值 返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。 实例 例子 1 在本例中,我们将创建一个数组,然后把它的所有元素放入一个字符串: 输出: George,John,Thomas 例子 2 在本例中,我们将使用分隔符来分隔数组中的元素:

输出: George.John.Thomas 2 lastIndex 属性用于规定下次匹配的起始位置。 语法 https://www.wendangku.net/doc/e511431005.html,stIndex 说明 该属性存放一个整数,它声明的是上一次匹配文本之后的第一个字符的位置。 上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以lastIndex 属性所指的位置作为下次检索的起始点。这样,就可以通过反复调用这两个方法来遍历一个字符串中的所有匹配文本。 该属性是可读可写的。只要目标字符串的下一次搜索开始,就可以对它进行设置。当方法 exec() 或 test() 再也找不到可以匹配的文本时,它们会自动把lastIndex 属性重置为 0。 提示和注释 重要事项:不具有标志 g 和不表示全局模式的 RegExp 对象不能使用 lastIndex 属性。 提示:如果在成功地匹配了某个字符串之后就开始检索另一个新的字符串,需要手动地把这个属性设置为 0。

C 中的string常用函数用法总结.

C++中的string常用函数用法总结首先,为了在我们的程序中使用string类型,我们必须包含头文件。 如下: #include //注意这里不是string.h string.h是C字符串头文件 #include using namespace std; 1.声明一个C++字符串 声明一个字符串变量很简单: string Str; 这样我们就声明了一个字符串变量,但既然是一个类,就有构造函数和析构函数。上面的声明没有传入参数,所以就直接使用了string的默认的构造函数,这个函数所作的就是把Str 初始化为一个空字符串。String类的构造函数和析构函数如下: a) string s; //生成一个空字符串s b) string s(str) //拷贝构造函数生成str的复制品 c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值 d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多st rlen”的部分作为字符串的初值 e) string s(cstr) //将C字符串作为s的初值 f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 g) string s(num,c) //生成一个字符串,包含num个c字符 h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 i) s.~string() //销毁所有字符,释放内存 都很简单,我就不解释了。

C、C++字符串指针(指向字符串的指针)

C、C++字符串指针(指向字符串的指针) C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这里我们来演示一下: #include #include #include int main(){ char str[] = "hello world !"; int len = strlen(str), i; //直接输出字符串 printf("%s\n", str); //每次输出一个字符 for(i=0; i #include #include

int main() { char str[] = "hello world !"; char *pstr = str; int len = strlen(str), i; //使用*(pstr+i) for (i = 0; i

java 字符串常用函数及其用法

java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。 String相关函数 1)substring() 它有两种形式,第一种是:String substring(int startIndex) 第二种是:String substring(int startIndex,int endIndex) 2)concat() 连接两个字符串 例:String s="Welcome to "; String t=s.concat("AnHui"); 3)replace() 替换 它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下: String replace(char original,char replacement) 例如:String s=”Hello”.replace(’l',’w'); 第二种形式是用一个字符序列替换另一个字符序列,形式如下: String replace(CharSequence original,CharSequence replacement) 4)trim() 去掉起始和结尾的空格 5)valueOf() 转换为字符串 6)toLowerCase() 转换为小写 7)toUpperCase() 转换为大写 8)length() 取得字符串的长度 例:char chars[]={’a',’b’.’c'}; String s=new String(chars); int len=s.length(); 9)charAt() 截取一个字符 例:char ch; ch=”abc”.charAt(1); 返回值为’b’ 10)getChars() 截取多个字符 void getChars(int sourceStart,int sourceEnd,char target[],int targetStart) sourceStart 指定了子串开始字符的下标 sourceEnd 指定了子串结束后的下一个字符的下标。因此,子串包含从sourceStart到sourceEnd-1的字符。

相关文档
相关文档 最新文档