Maskiere zuerst die ersten 12 Zeichen des Strings mit * aus?

9

Wie kann ich den Wert 123456789012345 oder 1234567890123456 annehmen und ihn in:

umwandeln?

************2345 und ************3456

Der Unterschied zwischen den obigen Strings besteht darin, dass einer 15 Ziffern enthält und der andere 16.

Ich habe Folgendes versucht, aber es behält nicht die letzten 4 Ziffern der 15-stelligen Nummer und jetzt ist egal, wie die Länge der Zeichenfolge, sei es 13, 14, 15 oder 16, ich möchte alle Anfang maskieren Ziffern mit einem *, aber behalten die letzten 4. Hier ist, was ich versucht habe:

%Vor%     
Xaisoft 27.01.2012, 14:55
quelle

11 Antworten

13
%Vor%     
Darin Dimitrov 27.01.2012, 15:00
quelle
17

In etwa so:

%Vor%

Damit werden alle bis auf die letzten vier Zeichen der Zeichenfolge maskiert. Es nimmt an, dass die Quellzeichenfolge mindestens 4 Zeichen lang ist.

    
Chris Dunaway 27.01.2012 18:10
quelle
11

Einfachster Weg: Erstellen Sie eine Erweiterungsmethode, um die letzten vier Ziffern zu extrahieren. Verwenden Sie das in Ihrem String.Format-Aufruf.

Zum Beispiel:

%Vor%

In Ihrem Code:

%Vor%

Meiner Meinung nach führt dies zu besser lesbarem Code und ist wiederverwendbar.

BEARBEITEN: Vielleicht nicht der einfachste Weg, sondern ein alternativer Weg, der zu mehr wartbaren Ergebnissen führt. & lt; Achselzucken / & gt;

    
Mike Hofer 27.01.2012 15:03
quelle
3

Versuchen Sie Folgendes:

%Vor%     
John Feminella 27.01.2012 15:01
quelle
3

LINQ:

%Vor%     
sll 27.01.2012 15:02
quelle
2
%Vor%

Passen Sie den Funktionskopf wie gewünscht an, rufen Sie mit:

auf %Vor%     
anjunatl 27.01.2012 15:08
quelle
2
___ answer9035351 ___

Einfachster Weg: Erstellen Sie eine Erweiterungsmethode, um die letzten vier Ziffern zu extrahieren. Verwenden Sie das in Ihrem String.Format-Aufruf.

Zum Beispiel:

%Vor%

In Ihrem Code:

%Vor%

Meiner Meinung nach führt dies zu besser lesbarem Code und ist wiederverwendbar.

BEARBEITEN: Vielleicht nicht der einfachste Weg, sondern ein alternativer Weg, der zu mehr wartbaren Ergebnissen führt. & lt; Achselzucken / & gt;

    
___ answer9035335 ___

LINQ:

%Vor%     
___ answer9035289 ___
%Vor%     
___ qstntxt ___

Wie kann ich den Wert %code% oder %code% annehmen und ihn in:

umwandeln?

%code% und %code%

Der Unterschied zwischen den obigen Strings besteht darin, dass einer 15 Ziffern enthält und der andere 16.

Ich habe Folgendes versucht, aber es behält nicht die letzten 4 Ziffern der 15-stelligen Nummer und jetzt ist egal, wie die Länge der Zeichenfolge, sei es 13, 14, 15 oder 16, ich möchte alle Anfang maskieren Ziffern mit einem *, aber behalten die letzten 4. Hier ist, was ich versucht habe:

%Vor%     
___ answer9037991 ___

In etwa so:

%Vor%

Damit werden alle bis auf die letzten vier Zeichen der Zeichenfolge maskiert. Es nimmt an, dass die Quellzeichenfolge mindestens 4 Zeichen lang ist.

    
___ answer9035304 ___

Versuchen Sie Folgendes:

%Vor%     
___ answer9035364 ___

Regex mit einem Match-Evaluator wird die Aufgabe

erledigen %Vor%

Dies entspricht einer beliebigen Anzahl von Ziffern gefolgt von vier Ziffern und dem Ende (es enthält nicht die vier Ziffern in der Ersetzung). Die Funktion replace ersetzt die Übereinstimmung durch eine Zeichenfolge gleicher Länge.

Dies hat den zusätzlichen Vorteil, dass Sie es auch als Validierungsalgorithmus verwenden können. Ändern Sie das erste + in {11,12}, damit es insgesamt 15 oder 16 Zeichen entspricht, und dann können Sie %code% verwenden, um die Gültigkeit zu bestimmen.

BEARBEITEN

Alternativ, wenn Sie immer ein 16-Zeichen-Ergebnis haben möchten, verwenden Sie einfach

%Vor%     
___ answer9035507 ___

Ein einfacher Weg

%Vor%     
___ antwort43732822 ___
%Vor%     
___ answer9035359 ___

Versuchen Sie Folgendes:

%Vor%     
___ answer9035762 ___

Probieren Sie es aus:

%Vor%     
___ answer9035415 ___
%Vor%

Passen Sie den Funktionskopf wie gewünscht an, rufen Sie mit:

auf %Vor%     
___ tag123c40 ___ C # 4.0 führte Funktionen wie dynamische Objekte, COM-Interoperabilitätsverbesserungen, generische Co- und Contravarianz, optionale und benannte Parameter ein. Verwenden Sie dieses Tag, wenn sich Ihre Frage speziell auf C # 4.0-spezifische Features bezieht. Das C # -Tag sollte verwendet werden, wenn Ihre Frage nicht für C # 4.0-Funktionen spezifisch ist. ___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ qstnhdr ___ Maskiere zuerst die ersten 12 Zeichen des Strings mit * aus? ___
Mehmet Tastan 02.05.2017 07:52
quelle
1

Versuchen Sie Folgendes:

%Vor%     
Daniel Peñalba 27.01.2012 15:04
quelle
1

Regex mit einem Match-Evaluator wird die Aufgabe

erledigen %Vor%

Dies entspricht einer beliebigen Anzahl von Ziffern gefolgt von vier Ziffern und dem Ende (es enthält nicht die vier Ziffern in der Ersetzung). Die Funktion replace ersetzt die Übereinstimmung durch eine Zeichenfolge gleicher Länge.

Dies hat den zusätzlichen Vorteil, dass Sie es auch als Validierungsalgorithmus verwenden können. Ändern Sie das erste + in {11,12}, damit es insgesamt 15 oder 16 Zeichen entspricht, und dann können Sie x.IsMatch verwenden, um die Gültigkeit zu bestimmen.

BEARBEITEN

Alternativ, wenn Sie immer ein 16-Zeichen-Ergebnis haben möchten, verwenden Sie einfach

%Vor%     
Bob Vale 27.01.2012 15:04
quelle
0

Ein einfacher Weg

%Vor%     
Fabio Luz 27.01.2012 15:14
quelle
0

Probieren Sie es aus:

%Vor%     
Mark Mintoff 27.01.2012 15:31
quelle

Tags und Links