none
Letztes Zeichen ermitteln und ersetzen RRS feed

  • Frage

  • Hallo!

     

    Ich habe eine einfache Frage, allerdings gelingt mir es einfach nicht so wie es ist.

    Nehmen wir an, ich habe einen String ala: abcdefgh

     

    Ich möchte nun die letzte stelle ermitteln und das H durch etwas bestimmtes ersetzen.
    Das ersetzen ist nicht das problem. (Switch:case)
    Aber das herausfinden der letzte stelle bereitet mir ein bisschen ein Problem, da der String auch unterschiedlich lang sein kann.

     

    Danke im Vorraus!


    • Bearbeitet Joe Waynsen Montag, 26. September 2011 09:30
    Montag, 26. September 2011 09:30

Antworten

  • Hier ein Beispiel:

                string test = "123456789";
    
                if (test.Length > 0)
                {
                    var lastChar = test[test.Length - 1];
                }
    

    • Als Antwort markiert Joe Waynsen Montag, 26. September 2011 09:53
    Montag, 26. September 2011 09:36

Alle Antworten

  • Hier ein Beispiel:

                string test = "123456789";
    
                if (test.Length > 0)
                {
                    var lastChar = test[test.Length - 1];
                }
    

    • Als Antwort markiert Joe Waynsen Montag, 26. September 2011 09:53
    Montag, 26. September 2011 09:36
  • perfekt!
    Montag, 26. September 2011 09:53
  • Ach, eine Frage hab ich doch noch fürs Ersetzen:

    Ich wollte das so lösen: 

     String manurl = input1.Replace(input1[input1.Length - 1], "blubb");

     

    Leider geht das nicht aufgrund von folgenden Fehler:

    "The best overloaded method match for string.Replace(char, char) has some invalid arguments
    Und : cannot convert from string to char.

     

     

    Montag, 26. September 2011 10:06
  • Das Problem ist, dass du versuchst einen Char durch einen String zu ersetzen. Dies funktioniert nicht. Entweder Char durch Char oder String durch String ersetzen.

    Hier ein Beispiel:

     

                //Replace
                char newChar = '0';
                var newString = test.Replace(lastChar, newChar);
    

    Dabei solltest du beachten, dass Replace alle Chars in deinem String ersetzt!

     

     


    Montag, 26. September 2011 10:13
  • Wenn du nur das letzte Zeichen ersetzen willst:

     

    String input1 = "abcdefgh";
    String manurl = input1.Substring(0, input1.Length - 1) + "blubb";
    
    



    Viele Grüße
    Jens Brand
    Montag, 26. September 2011 10:26
  • Super Lösung!

    Mein kleines Programm arbeitet nun einwandfrei.

     

    Echt toller und schneller Support!

    Montag, 26. September 2011 11:27
  • Ja, ich weiß, ich rolle das alte Thema wieder auf. Und vielleicht sollte ich ein neuen Thread erstellen, falls das so ist, sagt es mir und ich werde es tun.

    Nun zu meinem Problem.

    Das "Encoding" funktioniert ja recht gut, es geht im konkreten um eine URL. Ich ersetze das letzte Zeichen durch den Char, und ich möchte dann die manipulierte URL direkt an den Browser schicken.

     

    Ich habs mit "System.Diagnostics.Process.Start(manurl)" probiert, das problem ist das er es scheinbar wieder "dekodiert" und er die normale URL schickt. Das request muss aber wirklich mit der encodierten Url statt finden.

    Ich hoffe mal, ihr wisst ungefähr was ich meine, wenn nicht, nachfragen.

     

    Danke schonmal!

     

    Ahja.. der Source, um einen "Überblick" zu bekommen:

    string input1 = textBox1.Text;
                MessageBox.Show(input1);
                    String lastChar = Convert.ToString(input1[input1.Length - 1]);
                    if (lastChar == "e")
                    {
                        String manurl = input1.Substring(0, input1.Length - 1) + "%65";
                        MessageBox.Show(manurl);
                        System.Diagnostics.Process.Start(manurl);
                    }


    Mittwoch, 19. Oktober 2011 07:06
  • Joe,

    zwei Dinge: 

    1. bitte öffne für eine neue Frage auch einen neuen Thread so haben andere Forumbenutzer die Chance bei einer Suche auch die dazugehörige Antwort zu finden.

    2. zeige dann auch das, was Du in die TextBox eingegeben hast ansonsten ist es schwer nachzuvollziehen


    Hannes

    If you have got questions about this, just ask.

    In a perfect world,
    users would never enter data in the wrong form,
    files they choose to open would always exist
    and code would never have bugs.

    C# to VB.NET: http://www.developerfusion.com/tools/convert/csharp-to-vb/
    Mittwoch, 19. Oktober 2011 07:14