java:将中文字串word裂变成一个一个数组arr
时间: 2024-09-30 15:11:41 浏览: 41
在Java中,如果你有一个包含汉字的字符串`word`,你可以通过`split()`方法将其拆分成字符数组。但是,由于汉字在Unicode中占用两个字节,所以直接按照默认的字符分割可能会有问题。你需要先确定分隔符,通常在处理中文时,空格、全角半角空格或其他特定的字符会被用作分隔。
这里是一个示例,假设你想按照空格拆分:
```java
public class Main {
public static void main(String[] args) {
String word = "这是一个测试字符串"; // 中文字符串
// 使用正则表达式 "\s+" 匹配一个或多个连续的空白字符
String[] arr = word.split("\\s+");
for (String s : arr) {
System.out.println(s);
}
}
}
```
运行上述代码后,你会得到一个只包含单个汉字的数组`arr`。如果需要处理其他分隔符,只需替换`\s+`即可。
相关问题
/* * 函数名称:assign * 函数功能:通过键盘输入为多个一维字符数组(字串)赋值 * 形式参数:arr为一维字符数组指针(行指针);rows为int型,单词字串个数 * 返 回 值:无 */ void assign(char (arr)[COLUMNS], int rows){ // 请编码实现assign函数 } / * 函数名称:show * 函数功能:输出显示所有单词(字串) * 形式参数:arr为一维字符数组指针(行指针);rows为int型,单词字串个数 * 返 回 值:无 */ void show(char (arr)[COLUMNS], int rows){ // 请编码实现show函数 } / * 函数名称:sort * 函数功能:对多个一维字符数组(字串)进行排序 * 形式参数:arr为一维字符数组指针(行指针);rows为int型,单词字串个数 * 返 回 值:无 */ void sort(char(*arr)[COLUMNS], int rows){ // 请编码实现sort函数 } int main(void){ //ch为二维字符数组,包含ROWS个单词,每个单词最多COLUMNS个字母 char ch[ROWS][COLUMNS]; memset(ch,0,sizeof(ch)); //p是一个指向字符数组的指针,称为行指针,请参见教材Page189 //必须给p指定长度,否则编译不报错,运行也不报错,但会不正常 //p与ch等价,因此既可引用p,也可引用ch char (*p)[COLUMNS] = ch; //从键盘输入ROWS个单词,为ch赋值 assign(p, ROWS); //对ch中的ROWS个单词进行排序 sort(p, ROWS); //输出显示单词排序结果 show(p, ROWS); return 0; }
下面是assign、show和sort函数的实现:
```c++
#include <iostream>
#include <string.h>
using namespace std;
const int ROWS = 5;
const int COLUMNS = 20;
void assign(char arr[][COLUMNS], int rows) {
for (int i = 0; i < rows; i++) {
cin >> arr[i];
}
}
void show(char arr[][COLUMNS], int rows) {
for (int i = 0; i < rows; i++) {
cout << arr[i] << endl;
}
}
void sort(char arr[][COLUMNS], int rows) {
for (int i = 0; i < rows - 1; i++) {
for (int j = i + 1; j < rows; j++) {
if (strcmp(arr[i], arr[j]) > 0) {
char temp[COLUMNS];
strcpy(temp, arr[i]);
strcpy(arr[i], arr[j]);
strcpy(arr[j], temp);
}
}
}
}
int main(void) {
// ch为二维字符数组,包含ROWS个单词,每个单词最多COLUMNS个字母
char ch[ROWS][COLUMNS];
memset(ch, 0, sizeof(ch));
// p是一个指向字符数组的指针,称为行指针
char (*p)[COLUMNS] = ch;
// 从键盘输入ROWS个单词,为ch赋值
assign(p, ROWS);
// 对ch中的ROWS个单词进行排序
sort(p, ROWS);
// 输出显示单词排序结果
show(p, ROWS);
return 0;
}
```
std::string 替换字串
std::string 类型提供了多种替换字串的方法,以下是其中两种常用的方法:
1. replace() 方法:该方法可以用一个新的字符串替换原始字符串中的一个子串,可以指定起始位置和长度。例如:
```
std::string str = "hello world";
str.replace(0, 5, "hi");
// 替换后 str 的值为 "hi world"
```
2. find() 和 erase() 方法:可以结合使用 find() 方法和 erase() 方法来删除原始字符串中的子串,并在该位置插入一个新的字符串,例如:
```
std::string str = "hello world";
int pos = str.find("world");
if (pos != std::string::npos) {
str.erase(pos, 5);
str.insert(pos, "there");
}
// 替换后 str 的值为 "hello there"
```
阅读全文