亚洲免费一级高潮_欧美极品白嫩视频在线_中国AV片在线播放_欧美亚洲日韩欧洲在线看

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > Unity游戲/VR/AR入門教材 > VR開發(fā)入門教程39:控制臺(tái)編程--字符串03

VR開發(fā)入門教程39:控制臺(tái)編程--字符串03

來源:奇酷教育 發(fā)表于:

  字符串和ASCII碼的轉(zhuǎn)換  字符串是字符組成的一個(gè)序列,而字符底層是一個(gè)ASCII碼,所以字符串可以轉(zhuǎn)換成ASCII碼組成的一個(gè)序列。用Sys

  字符串和ASCII碼的轉(zhuǎn)換

  字符串是字符組成的一個(gè)序列,而字符底層是一個(gè)ASCII碼,所以字符串可以轉(zhuǎn)換成ASCII碼組成的一個(gè)序列。用System.Text.ASCIIEncoding.ASCII.GetBytes(字符串)的方式將字符串轉(zhuǎn)為字節(jié)數(shù)組。

  要求:求得0-9 a-z A-Z ASCII碼

  示例:

  public static void ParseStringToAscII()

  {

  String s = "09123123asjdhgahsjdgJGJGFJaksjdakshdhkgjgjh";

  // 轉(zhuǎn)出成字節(jié)數(shù)組

  byte[] bytes = System.Text.ASCIIEncoding.ASCII.GetBytes(s);

  for (int i = 0; i < bytes.Length; i++)

  {

  Console.WriteLine(bytes[i]);

  }

  // 已知一個(gè)字節(jié)數(shù)組 如何轉(zhuǎn)回字符串

  String reverse = System.Text.Encoding.UTF8.GetString(bytes);

  Console.WriteLine(reverse);

  }

  字符串的格式化

  Format 方法

  標(biāo)準(zhǔn)的數(shù)學(xué)格式字符串用于返回通常使用的字符串。它們通常象X0這樣的格式。X是格式化標(biāo)識(shí)符,0是精度標(biāo)識(shí)符。格式標(biāo)識(shí)符號(hào)共有9種,它們代表了大多數(shù)常用的數(shù)字格式。就像下表所示:

  String.Format("{0}{1}{2}{0}{1}{2}","a","b","c");

  int i = 123456;

  Console.WriteLine("{0:C}", i); // ¥123,456.00

  Console.WriteLine("{0:D}", i); // 123456

  Console.WriteLine("{0:E}", i); // 1.234560E+005

  Console.WriteLine("{0:F}", i); // 123456.00

  Console.WriteLine("{0:G}", i); // 123456

  Console.WriteLine("{0:N}", i); // 123,456.00

  Console.WriteLine("{0:P}", i); // 12,345,600.00 %

  Console.WriteLine("{0:X}", i); // 1E240

  Console.WriteLine("{0:C5}", i); // ¥123,456.00

  Console.WriteLine("{0:D5}", i); // 123456

  Console.WriteLine("{0:E5}", i); // 1.23456E+005

  Console.WriteLine("{0:F5}", i); // 123456.00000

  Console.WriteLine("{0:G5}", i); // 1.23456E5

  Console.WriteLine("{0:N5}", i); // 123,456.00000

  Console.WriteLine("{0:P5}", i); // 12,345,600.00000 %

  Console.WriteLine("{0:X5}", i); // 1E240

  綜合示例:

  如何將一個(gè)復(fù)雜的數(shù)學(xué)表達(dá)式解析成 運(yùn)算符和運(yùn)算數(shù)

  public static int SplitExpression(String expression)

  {

  // 拆出數(shù)字

  String[] nums = expression.Split("+-*/".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);

  // 拆出運(yùn)算符

  String[] ops = expression.Split("0123456789".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);

  // 如何計(jì)算

  // 先乘除

  ComputeByOp(nums,ops,"*/");

  // 后加減

  for (int i = 0; i < ops.Length; i++)

  {

  // 當(dāng)運(yùn)算符不為null的時(shí)候 運(yùn)算

  if (ops[i] != null)

  {

  // 判斷是否為加或減

  if (ops[i] == "+" || ops[i] == "-")

  {

  // 找出兩個(gè)運(yùn)算數(shù)

  int num1 = int.Parse(nums[i]);

  int num2 = int.Parse(nums[i + 1]);

  // 計(jì)算結(jié)果

  int result = Compute(ops[i],num1,num2);

  // 結(jié)果放入

  nums[i] = result.ToString();

  // 移動(dòng)運(yùn)算符和運(yùn)算數(shù)數(shù)組

  MoveArrByIndex(ops,i);

  MoveArrByIndex(nums, i+1);

  // 當(dāng)前位置重新判斷

  i--;

  }

  }

  else

  {

  break;

  }

  }

  return int.Parse(nums[0]);

  }

  public static void ComputeByOp(String[] nums,String[] ops,String op)

  {

  for (int i = 0; i < ops.Length; i++)

  {

  // 當(dāng)運(yùn)算符不為null的時(shí)候 運(yùn)算

  if (ops[i] != null)

  {

  // 判斷是否為乘或除

  if (op.Contains(ops[i]))

  {

  // 找出兩個(gè)運(yùn)算數(shù)

  int num1 = int.Parse(nums[i]);

  int num2 = int.Parse(nums[i + 1]);

  // 計(jì)算結(jié)果

  int result = Compute(ops[i], num1, num2);

  // 結(jié)果放入

  nums[i] = result.ToString();

  // 移動(dòng)運(yùn)算符和運(yùn)算數(shù)數(shù)組

  MoveArrByIndex(ops, i);

  MoveArrByIndex(nums, i + 1);

  // 當(dāng)前位置重新判斷

  i--;

  }

  }

  else

  {

  break;

  }

  }

  }

  public static void MoveArrByIndex(String[] arr,int startIndex)

  {

  // 將移動(dòng)的位置置為null

  arr[startIndex] = null;

  for (int i = startIndex; i < arr.Length-1; i++)

  {

  if (arr[i+1] != null)

  {

  // 交換

  String temp = arr[i];

  arr[i] = arr[i + 1];

  arr[i + 1] = temp;

  }

  }

  }

  public static int Compute(String op,int num1,int num2)

  {

  switch (op)

  {

  case "+": return num1 + num2;

  case "-": return num1 - num2;

  case "*": return num1 * num2;

  case "/": return num1 / num2;

  default: return 0;

  }

  }

>>>更多Python入門教程:Python入門