Skocz do zawartości

Zmienna i tab w stringu


Rekomendowane odpowiedzi

Czy jest jakiś sposób na zapisanie zmiennej w stringu? Coś w tym stylu: zmienna = "'asbcd'+zmienna2+'1234'", tak żeby przy używaniu zmiennej zmienna dawała ona wynik w zależności od tego co pisze w zmiennej2?

 

 

Plus: Jak w stringu zapisać wcięcie (tab)?

Odnośnik do komentarza
Udostępnij na innych stronach

1.

 String zmienna2 = Console.ReadLine();
            String zmienna1 = "123"+zmienna2+"222";
            Console.WriteLine(zmienna1);
            Console.ReadLine();

2.

\t

Odnośnik do komentarza
Udostępnij na innych stronach

Możesz sobie zrobić jakąś listę/tablicę/vector czy cokolwiek innego z odpowiednimi wartościami w komórkach i losować komórki.

Nie żebym znał #c, ale powinno być coś takiego możliwe.

Odnośnik do komentarza
Udostępnij na innych stronach

No to akurat proste, można to zrobić np ze switchem, ale to za dużo tekstu, i nie da się tego użyć wewnątrz stringu, np. "abc" + choose("aa","ab") + "abc". Mógłbym sobie sam napisać klasę, która by to robiła, ale to też dużo pisania, a może jest coś wbudowanego.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie ma gotowego.

 

GML
using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication11

{

class Program

{

static void Main(string[] args)

{

Random rand = new Random();

 

for (int i = 0; i < 20; i++)

{

Console.WriteLine(rand.Choose(new string[]{"X", " X", " X "}));

}

 

Console.Read();

}

}

 

public static class RandomExtension

{

public static string Choose(this Random random, string[] options)

{

return options[random.Next(options.Length)];

}

}

}

 

Ed: A streing sobie możesz zamienić na object i będzie bardziej uniwersalne.

Odnośnik do komentarza
Udostępnij na innych stronach

Opcjonalnie można by też użyć params, żeby wygodniej korzystać z tej metody (jak w GM-ie). Nie trzeba by tworzyć tablicy przy wywołaniu, chociaż jeśli byłaby taka potrzeba to też można ją przekazać. Czyli w sumie coś takiego:

GML
class Program {

static void Main( string[] args ) {

var random = new Random();

 

for ( int i = 0; i < 10; i++ ) {

Console.WriteLine( random.Choose( "hello", "world", 123, 123.123 ) );

Console.WriteLine( random.Choose( new object[] { "hello world", 321, 321.321 } ) );

}

}

}

 

public static class RandomExtensions {

public static object Choose( this Random aRandom, params object[] aParameters ) {

return aParameters[aRandom.Next( aParameters.Length )];

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

switch (random.Next(5))
{
case 0: zmienna = "1"; break;

case 1: zmienna = "2"; break;

case 2: zmienna = "3"; break;

case 3: zmienna = "4"; break;

case 4: zmienna = "5"; break;

}

Wiem, można tak zrobić, ale jak napiszę własną klasę, to nie będę musiał pisać tyle tekstu za każdym razem, a tylko np.

random.Choose("1","2","3")

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...