如何从另一个字符串中拆分定义的字符串并在拆分后获取第一个项目

时间:2016-06-22 10:04:47

标签: c# .net string

我有这个字符串D:\ASN\Documents\ENU\LO\ANL\File\05003ede-59bf-45c6-bb57-a6111e9f18e0\linux-cheat-sheet.pdf,我希望从上面的字符串中排除这个字符串D:\ASN\Documents\ENU\LO,然后在拆分后得到第一个字符串(在本例中为ANL)。

我试过这样的事情:

string fullpath = "D:\\ASN\\Documents\\ENU\\LO\\ANL\\File\\05003ede-59bf-45c6-bb57-a6111e9f18e0\\linux-cheat-sheet.pdf"
string[] sep = new string[]{"D:\\ASN\\Documents\\ENU\\LO"};
string [] result = fullpath.split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);

  foreach (string s in result)
            {
                Console.Write(s.Substring(s.IndexOf(@"\") + 1));
            }

但是这给了我ANL\File\05003ede-59bf-45c6-bb57-a6111e9f18e0\linux-cheat-sheet.pdf"。相反,我只需要ANL。怎么能实现这一目标?有没有其他方法来取代这种方式。

TIA

5 个答案:

答案 0 :(得分:2)

第二个字符串在看到\?

时能否进行拆分
MKPointAnnotation

答案 1 :(得分:2)

string result = fullpath.Substring("D:\\ASN\\Documents\\ENU\\LO".Length);

你可以用零替换第一部分(samplePath),删除它(或者你可以使用Substring来获取fullPath的第二部分,计算samplePath的字符),然后将结果拆分为'\',得到第二次出现,这是你期望的结果。

这是一个有效的版本:https://dotnetfiddle.net/k4tfGP

答案 2 :(得分:1)

这不是LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); if (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)){ Toast.makeText(this, "GPS open", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, "GPS closed", Toast.LENGTH_SHORT).show(); } 的目的。 split()通常用于根据分隔符将字符串分成多个部分。在您的情况下,您可能希望通过拆分'\'来使用它来分隔子文件夹。

但你想要别的东西 - 删除一段文字。如果您知道文本始终在开头,请尝试以下操作:

split()

这将返回原始字符串,减去前X个字符,其中X正是您要删除的字符串的长度。

答案 3 :(得分:1)

        string fullpath =
            "D:\\ASN\\Documents\\ENU\\LO\\ANL\\File\\05003ede-59bf-45c6-bb57-a6111e9f18e0\\linux-cheat-sheet.pdf";
        string[] sep = new string[] {"D:\\ASN\\Documents\\ENU\\LO"};
        string[] result = fullpath.Split(sep, StringSplitOptions.RemoveEmptyEntries);

        foreach (string s in result)
        {
            Console.Write(s.Substring(s.IndexOf(@"\") + 1, s.IndexOf(@"\", 2) - 1));
        }

String.IndexOf会得到第一个索引,但是有重载给出一个起点。所以在这个例子中,我给出了起点#34; 2"因为你的路径包含" \\"总是

答案 4 :(得分:0)

JSONArray jsonTasks = new JSONArray(responseString);
            for (int index = 0; index < jsonTasks.length(); index++) {
                            JSONObject jsonObject = (JSONObject) jsonTasks.get(index);
                            if (jsonObject != null) {
                                Map jsonMap = new JSONParser().parseJSON(new InputStreamReader(new ByteArrayInputStream(jsonObject.toString().getBytes(UTF8)), UTF8));
                                System.out.println(jsonMap.get("date"));

在这里工作......