2.假设有一个方法 ChangeString(string[] srtArr)传入一个字符串 数组,在每个元素两边加一个’=’,这个需求经常会发生变化, 比如在每个元素两边加一个’★’;需要让元素全部大写。用C#
时间: 2024-05-07 15:19:40 浏览: 6
以下是使用 C# 实现的 ChangeString 方法,可以在每个元素两边加一个指定的字符,也可以将所有元素转换为大写:
```csharp
public static void ChangeString(string[] strArr, char c)
{
for (int i = 0; i < strArr.Length; i++)
{
strArr[i] = c + strArr[i] + c;
}
}
public static void ChangeString(string[] strArr)
{
for (int i = 0; i < strArr.Length; i++)
{
strArr[i] = strArr[i].ToUpper();
}
}
```
使用示例:
```csharp
string[] arr = { "hello", "world" };
ChangeString(arr, '='); // 将每个元素两边加上等号
// arr 现在是 { "=HELLO=", "=WORLD=" }
ChangeString(arr); // 将所有元素转换为大写
// arr 现在是 { "=HELLO=", "=WORLD=" }
```
相关问题
2.假设有一个方法 ChangeString(string[] srtArr)传入一个字符串 数组,在每个元素两边加一个’=’,这个需求经常会发生变化, 比如在每个元素两边加一个’★’;需要让元素全部大写
可以通过使用委托来实现这个需求的变化。可以定义一个委托类型,用于表示在字符串两侧添加指定字符的方法,然后将具体的方法作为参数传入 ChangeString 方法中。
例如,可以定义一个委托类型 AddBoundaryDelegate:
```csharp
delegate string AddBoundaryDelegate(string str);
```
然后,可以编写一个 ChangeString 方法,该方法接受一个字符串数组和一个 AddBoundaryDelegate 委托作为参数:
```csharp
static void ChangeString(string[] strArr, AddBoundaryDelegate addBoundary)
{
for (int i = 0; i < strArr.Length; i++)
{
strArr[i] = addBoundary(strArr[i]);
}
}
```
这个方法将遍历字符串数组,对每个元素调用 AddBoundaryDelegate 委托,将委托的返回值覆盖原来的字符串。
现在,可以定义两个方法,分别用于在字符串两侧添加不同的字符:
```csharp
static string AddEqualBoundary(string str)
{
return "=" + str + "=";
}
static string AddStarBoundary(string str)
{
return "★" + str + "★";
}
```
最后,可以将不同的 AddBoundaryDelegate 委托传递给 ChangeString 方法,以实现不同的需求:
```csharp
static void Main(string[] args)
{
string[] strArr = { "hello", "world", "how", "are", "you" };
// 在每个元素两侧加上等号
ChangeString(strArr, AddEqualBoundary);
// 输出结果: =HELLO= =WORLD= =HOW= =ARE= =YOU=
Console.WriteLine(string.Join(" ", strArr));
// 在每个元素两侧加上星号,并将每个元素转换为大写
ChangeString(strArr, str => AddStarBoundary(str.ToUpper()));
// 输出结果: ★HELLO★ ★WORLD★ ★HOW★ ★ARE★ ★YOU★
Console.WriteLine(string.Join(" ", strArr));
}
```
用C#编写一个程序 如:假设有一个方法 ChangeString(string[] srtArr)传入一个字符串 数组,在每个元素两边加一个’=’,这个需求经常会发生变化, 比如在每个元素两边加一个’★’;需要让元素全部大写。
好的,这里是一个使用 C# 实现的示例程序,可以根据不同的需求改变字符串数组中的元素。
```csharp
using System;
namespace StringArrayDemo
{
class Program
{
static void Main(string[] args)
{
// 创建一个字符串数组
string[] strArr = { "hello", "world", "c#", "programming" };
// 在每个元素两边加上 '='
ChangeString(strArr, "=");
// 输出修改后的字符串数组
foreach (string str in strArr)
{
Console.WriteLine(str);
}
// 将所有元素转换为大写
ChangeString(strArr, str => str.ToUpper());
// 输出修改后的字符串数组
foreach (string str in strArr)
{
Console.WriteLine(str);
}
Console.ReadKey();
}
// 在每个元素两边加上指定的字符串
static void ChangeString(string[] strArr, string symbol)
{
for (int i = 0; i < strArr.Length; i++)
{
strArr[i] = symbol + strArr[i] + symbol;
}
}
// 对每个元素使用指定的转换函数进行转换
static void ChangeString(string[] strArr, Func<string, string> transform)
{
for (int i = 0; i < strArr.Length; i++)
{
strArr[i] = transform(strArr[i]);
}
}
}
}
```
在这个程序中,我们首先创建了一个字符串数组 `strArr`,然后分别调用 `ChangeString` 方法来对数组中的元素进行修改,其中第一个方法接受一个字符串参数来指定要添加的符号,第二个方法接受一个委托参数来指定对每个元素进行的转换操作。
在第一个方法中,我们使用 `for` 循环遍历数组中的每个元素,并在两边添加指定的符号。在第二个方法中,我们使用 `Func<string, string>` 委托类型来定义一个转换函数,该函数接受一个字符串参数并返回一个字符串结果。我们同样使用 `for` 循环遍历数组中的每个元素,并将其传递给转换函数进行转换。
在 `Main` 方法中,我们首先调用第一个 `ChangeString` 方法将每个元素的两侧添加上等号,并输出修改后的结果。然后,我们调用第二个 `ChangeString` 方法将每个元素转换为大写,并再次输出修改后的结果。