C#笔记-9

本文详细介绍了C#中字符串的基本操作方法,包括长度获取、连接、比较、替换及子串提取等,并通过示例展示了如何使用StringBuilder进行更高效的操作。

字符串

string类

.Length获取长度

字符串相加链接起来

CompareTo方法返回的是0和1,-1,三种返回代表三种情况

Replace("","")将字符串里左边指定字符替换成右边指定字符(可以单个字符的切换,也可以字符串替换,但不能交叉替换)

Substring(,)第一个参数是从哪里开始,第二个参数是读取多少个字符

IndexOf()参数是字符串,IndexOfAny是单个字符

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace learn
{
    class A
    {
        static void Main(string[] args)
        {
            string web = "touming.xyz";
            Console.WriteLine("域名:" + web);
            Console.WriteLine("域名长度:" + web.Length);
            web = "www." + web;//+=情况下,添加内容默认在被添加内容的后面
            Console.WriteLine("完整域名:" + web);
            foreach (char ret in web)
            {
                Console.Write(ret + " ");
            }
            Console.WriteLine("");

            string into = "www.touming.xz";
            Console.WriteLine("比较:" + into);
            int res = web.CompareTo(into);
            Console.WriteLine("返回值:" + res);

            web = web.Replace(".", "_");
            Console.WriteLine(web);
            web = web.Replace("_", ".");
            Console.WriteLine(web);
            Console.WriteLine(web.Substring(4, 7));
            int n = web.IndexOf("x");
            Console.WriteLine(n);

        }
    }
}

StringBuilder类

 StringBuilder就是一个类,创建一个StringBuilder需要构造一个对象。

StringBuilder stringBuilder = new StringBuilder("www.touming.xyz");

StringBuilder的构造函数传参有两种,一种是字符串,将字符传递给构造函数并赋予对象
第二种是整数,表示创建一个n个字符的空间,但暂时不放字符进去。

结合为
            StringBuilder num = new StringBuilder("www.touming.xyz",30);
和 

在WPF中,我们可以使用控件的属性来实现文本框和密码框的水印效果(也称为背景文字提示)。下面是实现该效果的一些方法: 方法一:使用控件的Placeholder属性 WPF的文本框和密码框控件都有一个名为Placeholder的属性,该属性可以用来显示文本框或密码框中的默认提示文本。当用户在文本框或密码框中输入内容后,该提示文本就会自动隐藏。 例如,以下代码演示了在WPF中如何使用Placeholder属性来实现文本框的水印效果: ```xml <TextBox Placeholder="请输入文本"></TextBox> ``` 同样地,我们可以在密码框中使用Placeholder属性来实现密码框的水印效果: ```xml <PasswordBox Placeholder="请输入密码"></PasswordBox> ``` 方法二:使用控件的Adorner WPF中的Adorner是一种用于在控件上添加装饰元素的机制。我们可以使用Adorner来实现文本框和密码框的水印效果。 以下是实现该效果的一般步骤: 1.定义一个自定义控件,例如WatermarkTextBox。 2.在WatermarkTextBox中定义一个名为Watermark的依赖属性。该属性表示水印提示文本。 3.重写WatermarkTextBox的OnRender方法,使其在控件上绘制水印提示文本。 4.在WatermarkTextBox的TextChanged事件中判断文本框中是否有内容,如果有则隐藏水印提示文本,否则显示水印提示文本。 以下是WatermarkTextBox的示例代码: ```csharp public class WatermarkTextBox : TextBox { public static readonly DependencyProperty WatermarkProperty = DependencyProperty.Register( "Watermark", typeof(string), typeof(WatermarkTextBox), new PropertyMetadata(default(string))); public string Watermark { get { return (string)GetValue(WatermarkProperty); } set { SetValue(WatermarkProperty, value); } } protected override void OnRender(DrawingContext drawingContext) { base.OnRender(drawingContext); if (string.IsNullOrEmpty(Text) && !string.IsNullOrEmpty(Watermark)) { var formattedText = new FormattedText( Watermark, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, new Typeface(FontFamily, FontStyle, FontWeight, FontStretch), FontSize, Foreground); drawingContext.DrawText(formattedText, new Point(2, 2)); } } protected override void OnTextChanged(TextChangedEventArgs e) { base.OnTextChanged(e); if (string.IsNullOrEmpty(Text) && !string.IsNullOrEmpty(Watermark)) { InvalidateVisual(); } } } ``` 使用WatermarkTextBox时,只需要在XAML中设置Watermark属性即可: ```xml <local:WatermarkTextBox Watermark="请输入文本"></local:WatermarkTextBox> ``` 同样地,我们也可以定义一个WatermarkPasswordBox类来实现密码框的水印效果。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值