//read
Console.Write("Please enter (pyramid slot number,block letter,whether or not the block should be lit): ");
string csvString = Console.ReadLine();
//location of comma
int firstComma = csvString.IndexOf(',');
int secondComma = csvString.IndexOf(',', firstComma 1);
//extract slot number of pyramid
int slotNumber = int.Parse(csvString.Substring(0, firstComma));
string blockLetter = csvString.Substring(firstComma 1, secondComma);
Boolean lit = Boolean.Parse(csvString.Substring(secondComma 1));
//print
Console.WriteLine("Pyramid Slot Number: " slotNumber);
Console.WriteLine("Block Letter: " blockLetter);
Console.WriteLine("Lit: " lit);
我試著輸入“5,M,true”。但是 Block Letter 的輸出是“M,t”。如果我嘗試輸入 15 而不是 5,那么它會給出“M,tr”。最后,我只想得到一封信。解決這個問題后,我將使用 char 。
編輯:
char blockLetter = char.Parse(csvString.Substring(firstComma 1, 1));
我用過這個謝謝!
uj5u.com熱心網友回復:
第一個引數String.Substring是開始索引,第二個引數不是結束索引而是長度。所以你需要計算它:
int firstComma = csvString.IndexOf(',');
int startIndex = firstComma 1;
int secondComma = csvString.IndexOf(',', startIndex);
int length = secondComma - startIndex;
string blockLetter = csvString.Substring(startIndex, length);
一種更簡單的方法是使用String.Split以string[]逗號分隔的所有標記來獲取 a :
string[] allSlots = csvString.Split(',');
// first token is in allSlots[0] and second in allSlots[1]
uj5u.com熱心網友回復:
據我了解,根據提供的代碼,您需要用逗號分隔的值。如果我猜對了,那么最好使用String.Split方法。
uj5u.com熱心網友回復:
如果您的 CSV 檔案包含您無論如何讀取的資料,您只需將字串拆分為逗號,然后按索引提取各個欄位。下面是一個例子:
var csvEntry = "5,M,true";
var entryData = csvEntry.Split(',');
var slotNumber = int.Parse(entryData[0]);
var blockLetter = entryData[1];
var lit = bool.Parse(entryData[2]);
Console.WriteLine($"Pyramid Slot Number: {slotNumber}");
Console.WriteLine($"Block Letter: {blockLetter}");
Console.WriteLine($"Lit: {lit}");
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/344058.html
上一篇:SQLiteEXISTS引數回傳-1,無論記錄是否存在,C#
下一篇:過濾LINQ運算式中的物件-C#
