C# 字符串和正则表达式(8) 持续更新
创建字符串 如果多次修改一个字符串或创建一个很长的字符串,用String类会效率低下。这种情况,可以用 System.Text.StringBuilder ,它专门为这种情况设计的。
格式化表达式 格式化表达式使用两个有效的接口 IFormatProvider 和 IFormattable 。 这样 Console.WriteLine 和 类似的类 以指定的方式显示值。
正则表达式 用 System.Text.RegularExpressions 来识别复杂的字符串
String类
PadLeft、PadRight
string str = "f";
char pad = '.'; Console.WriteLine(str.PadLeft(, pad));
Console.WriteLine(str.PadLeft(, pad));
输出
..............f
.f
string str = "string string string string string";
str += "addstring addstring addstring";
上面这段代码本身功能很简单,但它如果执行 大量的替换 的操作,如果执行次数越多,性能就越低。
为解决这个这个问题用 StringBuilder。 StringBuidler仅可以替换和追加或删除字符问题。虽然方法少,但它工作方式高效。
StringBuilder stringBuilder = new StringBuilder("string string string string string",);
stringBuilder.AppendLine("addbuilder addbuilder addbuilder addbuilder addbuilder");
StringBuilder 初始容量设置 150 。最好容量设置字符串最大长度,确保StringBuilder不需要重新分配内存。该容量默认设置16。
Console.WriteLine(stringBuilder + " " + stringBuilder.Capacity );
StringBuilder 只可以用ToString方法 转换为 String, 强制转换是不可以的。
格式化字符串
double d = 24.123478904523;
Console.WriteLine("{0,2:F},{1}", d , );
string str = String.Format("{0,2:F},{1}", d, );
Console.WriteLine(str);
其中 2:F 。 F 表示 浮点数 ,2 表示 保留小数点 2位。
还有其他的 https://msdn.microsoft.com/zh-cn/library/dwhawy9k(v=vs.110).aspx
Console.WriteLine 将 参数 传递给 String.Format 输出到控制台。
正则表达式
正则表达式语言 https://msdn.microsoft.com/zh-cn/library/az24scfc(v=vs.110).aspx
private static void Main(string[] args)
{
Find1();
Find2();
Console.ReadLine();
} private static void Find1()
{
const string text = @"nion sion naaaion";
const string pattern = @"\bn\S*ion\b";
MatchCollection matches = Regex.Matches(text, pattern,
RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace |
RegexOptions.ExplicitCapture);
WriteMatches(text, matches);
} private static void Find2()
{
const string text = @"http://www.baidu.com";
const string pattern = @"^(http://)(\S*)";
MatchCollection matches = Regex.Matches(text, pattern,
RegexOptions.IgnoreCase);
WriteMatches(text, matches);
} private static void WriteMatches(string text, MatchCollection matches)
{
Console.WriteLine("matches.Count: " + matches.Count);
foreach (Match nextMatch in matches)
{
int index = nextMatch.Index;
string result = nextMatch.ToString();
Console.WriteLine("result:{0}",result);
}
}
C# 字符串和正则表达式(8) 持续更新的更多相关文章
- Python中列表、元组、字典、集合与字符串,相关函数,持续更新中……
本篇博客为博主第一次学 Python 所做的笔记(希望读者能够少点浮躁,认真阅读,平心静气学习!) 补充: 列表.元组和字符串共同属性: 属于有序序列,其中的元素有严格的先后顺序 都支持双向索引,索引 ...
- php正则表达式(持续更新)
1.字符串替换多个关键字 $pattern = array('/a/', '/a/', '/a/'); $replacement = array('x', 'y', 'z'); $subject = ...
- python常用的正则表达式,持续更新<<
# -*- coding: utf-8 -*- import re str_0 = 'Aqin1012Heheheaaaaaaahehe如何da' def re_str(re_str_0,str_0) ...
- 总结js常用函数和常用技巧(持续更新)
学习和工作的过程中总结的干货,包括常用函数.常用js技巧.常用正则表达式.git笔记等.为刚接触前端的童鞋们提供一个简单的查询的途径,也以此来缅怀我的前端学习之路. PS:此文档,我会持续更新. Aj ...
- java视频教程 Java自学视频整理(持续更新中...)
视频教程,马士兵java视频教程,java视频 1.Java基础视频 <张孝祥JAVA视频教程>完整版[RMVB](东西网) 历经5年锤炼(史上最适合初学者入门的Java基础视频)(传智播 ...
- Linux命令(持续更新ing)
*.命令语法: a.在进行参数设定时,通常为“-”号,若为完整参数名称,则输入“--”符号; b.指令太长的时候,可以使用“\”符号使指令连续到下一行; c.各种符号的意义: '' ...
- 【 js 基础 】【 源码学习 】源码设计 (持续更新)
学习源码,除了学习对一些方法的更加聪明的代码实现,同时也要学习源码的设计,把握整体的架构.(推荐对源码有一定熟悉了之后,再看这篇文章) 目录结构:第一部分:zepto 设计分析第二部分:undersc ...
- 【持续更新】JavaScript常见面试题整理
[重点提前说]这篇博客里的问题涉及到了了JS中常见的的基础知识点,也是面试中常见的一些问题,建议初入职场的园友Mark收藏,本文会持续更新~ 1. 引入JS的三种方式 1.在HTML标签中直接使用,直 ...
- 【前端】Util.js-ES6实现的常用100多个javaScript简短函数封装合集(持续更新中)
Util.js (持续更新中...) 项目地址: https://github.com/dragonir/Util.js 项目描述 Util.js 是对常用函数的封装,方便在实际项目中使用,主要内容包 ...
随机推荐
- 最新 斗鱼java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.斗鱼等10家互联网公司的校招Offer,因为某些自身原因最终选择了斗鱼.6.7月主要是做系统复习.项目复盘.LeetCode ...
- jqGrid清空表格
$("#jqGrid").jqGrid("setGridParam",{ datatype:'local', data : [], page:1 }).trig ...
- 洛谷 题解 P1353 【[USACO08JAN]跑步Running】
动态规划 状态 dp[i][j]表示第i分钟疲劳值为j的最大值 初始 全部都为一个最小值"0" 转移 考虑休息和走 如果当前疲劳值比时间要大,显然不可能出现这种情况 如果比时间小 ...
- 【leetcode算法-简单】9. 回文数
[题目描述] 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: false解释: ...
- Python基础总结之第七天开始【认识函数的参数以及返回】(新手可相互督促)
周日的早上,吃的饱饱,刷刷抖音,开始学习新一天的知识了~~~ 函数的参数: 昨天的笔记中,我们已经使用了参数,在案例中的name和sex 就是参数. 一般的函数都是有参数的,函数的参数都是放在函数定义 ...
- 一块40克的砝码,摔成4块,利用天平,刚好可以称出1~40g所有整数克,问:这4块分别是多少克
public static void main(String[] args) { List<Integer> list = new ArrayList<>();//记录每组数的 ...
- pt-table-checksum和pt-table-sync使用
pt-table-checksum和pt-table-sync使用 数据库版本:5.6.25 pt工具版本:2.2.14 主从关系一:不同机器同一端口 10.10.228.163:4306(rescs ...
- 怎样通过CSS选择器获取元素节点或元素节点集合
使用 document.querySelector() 和 document.querySelectorAll(), 将 CSS选择器 作为参数传入即可. // 标签选择器 document.quer ...
- Spring HttpServletRequest对象的获取
1.Controller方法上获取 @RequestMapping(value = "/aliyun/ccc/callComing", method = RequestMethod ...
- Java API 之 SPI机制
SPI SPI全称是service provider interface,是Java定义的一套服务发现机制,如图: 调用方只需要面向接口,接口的实现由第三方自己去实现,服务启动的时候会自动去发现该服务 ...