- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在执行我的 C# 代码以使用 ADO 读取 .CSV 时,我遇到了下一个问题:在读取我的行时,我得到一个包含在字符串中并用“\”分隔的值。像“hi\goodMorning\ByeBye”之类的东西。
这是我的代码:
// Crear el objeto de conexión utilizando la cadena de conexión anterior.
using (OleDbConnection objConn = new OleDbConnection(sConnectionString))
{
// Abrir la conexión con la base de datos.
objConn.Open();
// El código utiliza un comando SQL SELECT para mostrar los datos de la hoja de cálculo.
string sql = "SELECT * FROM " + fileName;
// Crear un nuevo OleDbCommand para devolver los datos de la hoja de cálculo.
using (OleDbCommand objCmdSelect = new OleDbCommand(sql, objConn))
{
// Crear un nuevo OleDbDataAdapter que se usa para generar un DataSet // basado en la instrucción SQL SELECT anterior.
// Pasar el comando Select al adaptador.
//OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(objCmdSelect);
OleDbDataReader reader = objCmdSelect.ExecuteReader();
while (reader.Read())
{
string value= @reader[0].ToString();
到目前为止我一直在尝试:
A --> string value = reader[0].ToString();
B --> value .Split(Convert.ToChar(92)); //Using ASCII
C --> System.Text.RegularExpressions.Regex.Escape("\\")
D --> value.Contains((char)92); //---> returns false
E --> value.Contains("\\\"); //---> returns false
F --> .Replace doesn't work either
我没主意了!很高兴听到任何建议。我认为如果我能逃脱这个角色,问题就会得到解决。到目前为止我做不到。如果我得到答案,我会发布它。
This --> @"your\string\here".Contains("\\");
--> 返回 TRUE -- 它没有
我的正确答案是:
string [] temp = @"aaa\taaa\taaa".Split('\t');
谢谢大家! :)
最佳答案
要转义转义序列,请使用它两次:
"\\"
或者在字符串前面使用@
verbatim-string-literal。它将强制编译器在没有任何转义序列的情况下按字面解释字符串。查看documentation
@"\"
这意味着你想使用 split 你可以使用 this overload
string [] temp = @"your\string\here".Split(new string [] {@"\"}, StringSplitOptions.None);
或 overload that accepts a char as parameter
string [] temp = @"your\string\here".Split('\\');
Contains
和 Replace
的工作方式类似:
bool cont = @"your\string\here".Contains(@"\");
string repl = @"your\string\here".Replace(@"\", " ");
编辑:
更新后很明显您的字符串是制表符分隔的:
你需要用\t
一个制表符来分割它!
string [] temp = @"aaa\taaa\taaa".Split('\t');
请阅读我发布的第一个链接。文档说:
A character that follows a backslash character () in a regular-string-literal-character must be one of the following characters: ', ", \, 0, a, b, f, n, r, t, u, U, x, v. Otherwise, a compile-time error occurs.
关于c# - 如何逃脱 '\',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46447461/
这个问题在这里已经有了答案: How to escape the bang (!) character in Linux bash shell? (3 个答案) 关闭 5 年前。 我有一个复杂的命令
我有一个 javascript 转换工具,用于将 XML 移动到在 Fitnesse 静态页面上运行的 Fitnesse 表中,其中我在 CamelCase 和 xmlns 周围使用 !- 和 -!避
波浪字符是否需要在 bash 脚本中进行转义? 我试图用\~ 来逃避它,但它没有帮助。如果我删除 ~ 字符,下面的代码将按预期工作。 if ! [[ "$line" =~ ^[
在 Elixir 中,什么时候应该使用 Macro.escape/1 而不是 quote/1?我看过beginner's guide但这没有帮助。 最佳答案 quote/2返回 abstract sy
在我的表单中,我的复选框元素的名称是 onSite[]。 我编写了一个简单的 JavaScript,只需单击一下即可检查它们。 function checkAll(field) { for (i =
我有一个包含小数百分比值的字段。 文本 block 绑定(bind)到该字段,我想用 % 符号显示它。 例如:如果 myfield = 5.0,则文本应显示为“5.00 %” 这是我的绑定(bind)
是否有可能逃脱并保持非标准?表中模板 Wiki 标记中的 URL 中的字符? {| class="wikitable" |- ! Test in Table |- | [http://example.
我是一名优秀的程序员,十分优秀!