自定义方法中形参可以时字符串类型吗
时间: 2023-10-04 16:08:29 浏览: 47
是的,Java中自定义方法中的形参可以是字符串类型。例如:
```
public void printString(String str) {
System.out.println(str);
}
```
这里的printString方法有一个String类型的形参str,可以接收任意字符串作为参数,并在方法体内将其输出。在调用这个方法时,可以传递任意字符串作为实参,例如:
```
printString("Hello, World!"); // 输出Hello, World!
```
需要注意的是,Java中字符串类型是引用类型,所以在方法中修改字符串的值会影响到原始字符串的值。如果不希望在方法中修改字符串的值,可以在方法内部使用String类型的不可变字符串。
相关问题
这两个的形参能不能是字符串类型
在 C++ 中,`strcpy` 和 `strlen` 函数的形参可以是字符串类型,也可以是字符数组类型。字符串类型是 C++ 中的一种特殊的类型,它本质上是一个字符数组,用双引号括起来表示,例如 `"Hello"` 就是一个字符串类型。字符数组类型则是由一组字符组成的数组,用方括号括起来表示,例如 `char str[20]` 就是一个字符数组类型。
下面是使用字符串类型作为 `strcpy` 和 `strlen` 函数的形参的例子:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
string str1 = "Hello";
string str2 = "World";
char cstr1[20];
char cstr2[20];
strcpy(cstr1, str1.c_str());
strcpy(cstr2, str2.c_str());
strcat(cstr1, cstr2);
cout << "cstr1: " << cstr1 << endl;
cout << "cstr2: " << cstr2 << endl;
int len1 = strlen(cstr1);
int len2 = strlen(cstr2);
cout << "Length of cstr1 = " << len1 << endl;
cout << "Length of cstr2 = " << len2 << endl;
return 0;
}
```
运行结果为:
```
cstr1: HelloWorld
cstr2: World
Length of cstr1 = 10
Length of cstr2 = 5
```
这里使用了 C++ 中的 `string` 类型来表示字符串,`c_str()` 函数可以将 `string` 类型转换成 C 风格的字符串(即以字符数组的形式表示)。其他部分与前面的例子基本相同。
将形参指向的字符串复制到该类的字符数组中
可以使用 strcpy() 函数将形参指向的字符串复制到该类的字符数组中。该函数的原型如下:
```c++
char* strcpy(char* dest, const char* src);
```
其中,参数 dest 是目标字符数组的地址,参数 src 是源字符串的地址。该函数会将源字符串中的字符复制到目标字符数组中,直到遇到空字符 '\0'。需要注意的是,目标字符数组必须有足够的空间来存储源字符串中的字符,否则会造成缓冲区溢出的错误。