unity 字符串 小技巧

1. 判断text是否为int 

//判断实数的正则表达式为 ^-?\d+\.?\d*$

//具体方法

//1、添加引用
using System.Text.RegularExpressions;

//2、
string regex = @"^-?\d+\.?\d*$";
bool result = Regex.IsMatch(字符, regex);

//result 结果为 true时,字符实数

2.比较两个字符串是否相等

/// <summary>
         /// 比较两个字符串是否相等
          /// </summary>
          /// <param name="A"></param>
          /// <param name="B"></param>
          /// <returns></returns>
          public static bool StrComparison(string A,string B)
          {
              char[] c1 = A.ToCharArray();
             char[] c2 = B.ToCharArray();
             Array.Sort(c1);
             Array.Sort(c2);
             string t1 = new String(c1).ToUpper();
             string t2 = new String(c2).ToUpper();
            if (t1.Trim() == t2.Trim())//去除 首尾空格
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }

3.unity C#字符串读取

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class MyTextChar : MonoBehaviour
{

    private Text uiText;
    //储存中间值
    private string words;
    //每个字符的显示速度
    private float timer;
    private float timer2;
    //限制条件,是否可以进行文本的输出
    private bool isPrint = false;
    private float perCharSpeed = 1;

    private int text_length = 0;
    private string Ctext;
    // Use this for initialization
    void Start()
    {

        uiText = GetComponent<Text>();
        words = GetComponent<Text>().text;
        isPrint = true;
    }

    // Update is called once per frame
    void Update()
    {

        printText();
    }

    void printText()
    {
        try
        {
            if (isPrint)
            {

                uiText.text = words.Substring(0, (int)(perCharSpeed * timer));//截取

                timer += Time.deltaTime;

            }
        }
        catch (System.Exception)
        {
            printEnd();
        }
    }

    void printEnd()
    {
        isPrint = false;
    }
}

4.字符串 剔除使用

 DLChangDu = int.Parse(DaLouChangDu.text.TrimEnd('m'));//剔除结尾m 使用整数部分

string.TrimStart()   //删除字符串头部空格

string.TrimEnd()  //删除字符串尾部空格

string.Trim()  //删除字符串头部和尾部空格,由外向内,直到碰到非空格才会停止

5.是否包含

 if (!DaLouChangDu.text.Contains("m"))//是否存在m

6.删除指定位置字符

//删除此字符串中从指定位置到最后位置的所有字符。
Remove(int startIndex):


//从此实例中的指定位置开始删除指定数目的字符。
Remove(int startIndex, int length):


//从此实例检索子字符串。子字符串从指定的字符位置开始。
Substring(int startIndex):


//从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。
Substring(int startIndex, int length):



7.分割字符串:

Split方法,用于分割字符串。

 static void Main()
        {
            string _testStr = "痴#情,的妖:怪啊,请再;等一世吧!";
            char[] _separator = { '#', ',', ':', ';' };
            string[] _splitsStrings = _testStr.Split(_separator);
            for (int i = 0; i < _splitsStrings.Length; i++)
            {
                Console.WriteLine("子字符串{0}:{1}", i, _splitsStrings[i]);
            }
            Console.ReadKey();
        }

8.

截取字符串

SubString方法可以截取字符串中指定索引位置及指定长度的字符。(字符串中的索引是从0开始)

            string _testStr = "痴情的妖怪啊,请再等一世吧!";
            string _subStr = _testStr.Substring(3, 4);    //从索引3开始,截取四个字符
            Console.WriteLine(_subStr);

9.获取时间戳(long) 

using System;
using UnityEngine;

public class TimeTest : MonoBehaviour
{
    DateTime startTime;

    private void Start()
    {
        //获取开始时的时间
        startTime = DateTime.Now;
        Debug.Log("startTime="+ startTime);

        //获取当前时间戳
        long unixTime = ConvertDateTimep(DateTime.Now);
        Debug.Log(unixTime);
        //将时间戳转换为DateTime
        Debug.Log(GetTime(unixTime.ToString()).ToString());

        Debug.Log(GetTime(unixTime.ToString()).Year);
        Debug.Log(GetTime(unixTime.ToString()).Month);
        Debug.Log(GetTime(unixTime.ToString()).Day);
        Debug.Log(GetTime(unixTime.ToString()).Hour);
        Debug.Log(GetTime(unixTime.ToString()).Minute);
        Debug.Log(GetTime(unixTime.ToString()).Second);


    }
    /// <summary>
    /// 获取时间戳(精确到秒)
    /// TimeTool.ConvertDateTimep(DateTime.Now)
    /// </summary>
    /// <param name="time">时间</param>
    public static long ConvertDateTimep(DateTime time)
    {
        return ((time.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
        //等价于:
        //return ((time.ToUniversalTime().Ticks - new DateTime(1970, 1, 1, 0, 0, 0, 0).Ticks) / 10000000) * 1000;
    }
    /// <summary>
    /// 获得时间戳 
    /// </summary>
    /// <returns></returns>
    private long GetTime()
    {
        //精确到毫秒
        return new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
    }
    /// <summary>
    /// 时间戳转为C#格式时间
    /// TimeTool.GetTime(TimeTool.ConvertDateTiemp(DateTime.Now).ToString())
    /// </summary>
    /// <param name="timeStamp">时间戳</param>
    /// <returns></returns>
    public static DateTime GetTime(string timeStamp)
    {
        if (timeStamp.Length > 10)
        {
            timeStamp = timeStamp.Substring(0, 10);
        }
        DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
        long lTime = long.Parse(timeStamp + "0000000");
        TimeSpan toNow = new TimeSpan(lTime);
        return dateTimeStart.Add(toNow);
    }


    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Z))
        {
            //获取当前时间,并打印当前时间与开始时间相差秒数(以秒为单位)
            DateTime curtimer = DateTime.Now;
            Debug.Log(curtimer);
            int timer = GetSubSeconds(startTime, curtimer);
            Debug.Log(timer);
        }
    }

    /// <summary>
    /// 获取间隔秒数
    /// </summary>
    /// <param name="startTimer"></param>
    /// <param name="endTimer"></param>
    /// <returns></returns>
    public int GetSubSeconds(DateTime startTimer, DateTime endTimer)
    {
        TimeSpan startSpan = new TimeSpan(startTimer.Ticks);

        TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);

        TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();

        //返回间隔秒数(不算差的分钟和小时等,仅返回秒与秒之间的差)
        //return subTimer.Seconds;

        //返回相差时长(算上分、时的差值,返回相差的总秒数)
        return (int)subTimer.TotalSeconds;
    }

    /// <summary>
    /// 获取两个时间的相差多少分钟
    /// </summary>
    /// <param name="startTimer"></param>
    /// <param name="endTimer"></param>
    /// <returns></returns>
    public int GetSubMinutes(DateTime startTimer, DateTime endTimer)
    {
        TimeSpan startSpan = new TimeSpan(startTimer.Ticks);

        TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);

        TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();

        //返回相差时长(仅返回相差的分钟数)
        //return subTimer.Minutes;
        //返回相差时长(仅返回相差的总分钟数)
        return (int)subTimer.TotalMinutes;
    }


    /// <summary>
    /// 获取两个时间的相差多少小时
    /// </summary>
    /// <param name="startTimer"></param>
    /// <param name="endTimer"></param>
    /// <returns></returns>
    public int GetSubHours(DateTime startTimer, DateTime endTimer)
    {
        TimeSpan startSpan = new TimeSpan(startTimer.Ticks);

        TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);

        TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();

        //返回相差时长(仅返回相差的小时)
        //return subTimer.Hours;
        //返回相差时长(返回相差的总小时数)
        return (int)subTimer.TotalHours;
    }

    /// <summary>
    /// 获取两个时间的相差多少天
    /// </summary>
    /// <param name="startTimer"></param>
    /// <param name="endTimer"></param>
    /// <returns></returns>
    public int GetSubDays(DateTime startTimer, DateTime endTimer)
    {
        TimeSpan startSpan = new TimeSpan(startTimer.Ticks);

        TimeSpan nowSpan = new TimeSpan(endTimer.Ticks);

        TimeSpan subTimer = nowSpan.Subtract(startSpan).Duration();

        //返回相差时长(仅返回相差的天数)
        //return subTimer.Days;
        //返回相差时长(返回相差的总天数)
        return (int)subTimer.TotalDays;
    }
}

保留 后几位小数点

一、float转换为string:ToString("f3"):保留3位小数点,3代表保留多少位小数点
 

str_tmp +="\n"+ arrTargetAngles[i].ToString("f3");
一、string转换为float保留多少位小数点
好像是多少位就是多少位,超出范围另当别论

 float.TryParse(student.Attributes["x"].Value, out targetVec3[i].x);
float f_tmp_x = float.Parse(student.Attributes["x"].Value);
————————————————

原文链接:https://blog.csdn.net/qq_40544338/article/details/102678178

字符串 替换   也可以去除某个字符

字符串替换
string s = “siki”;
string newStr = s.Replace(‘i’, ‘h’);//用指定字符更换另一个字符,用后面的替换前面的
string newStr = s.Replace(“si”, “zaaa”);//用指定字符更换另一个字符,用后面的替换前面的,长度不要
求一致
t2.Replace(" ", "")//去除 所有空格
t2.Replace(",", "")//去除 所有逗号

猜你喜欢

转载自blog.csdn.net/qq_37524903/article/details/126974030