Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- /*
- FELADAT:
- Készíts egy Util nevű osztályt. Írj egy metódust ebbe az osztályba, amely alkalmazás szinten bárhonnan elérhető az Util osztály példányosítása nélkül. A metódus feladata, hogy a paraméterül kapott karakterláncot, a szintén paraméterül kapott maximális méretűre vágja. Azt, hogy a metódus a karakterlánc melyik végéből vágjon, szintén paraméter határozza meg. Fontos, hogy a maximális méret byte-okat jelent - az adat tárolási szintjén - így nem elég csak a szokásos hosszlekérés által visszaadod karakterszámra hagyatkozni a megoldásnál. Tetszőleges programnyelvet választhatsz, de a JAVA megoldásnak jobban örülünk. :)
- Metódus neve: truncField
- Param1: String fld, nagyobb mint a max méret
- Param2: int maxLen: visszaadandó karakterlánc hossza byte-okban
- Param3: bool fromEnd: ha true akkro a fld paraméter végéről, ellenkező esetben az elejéről kell vágni.
- Visszatérési érték típusa: string
- */
- namespace progverseny_util
- {
- public static class Util
- {
- public static string truncField(string fld, int maxLen, bool fromEnd)
- {
- if (maxLen < fld.Length)
- {
- UTF8Encoding encoding = new UTF8Encoding();
- var bytes = encoding.GetBytes(fld);
- int bytescount = encoding.GetByteCount(fld);
- if (fromEnd)
- {
- byte[] ujBytes = new byte[bytes.Length - (bytescount - maxLen)];
- Buffer.BlockCopy(bytes, 0, ujBytes, 0, ujBytes.Length);
- fld = encoding.GetString(ujBytes);
- }
- else
- {
- byte[] newArray = new byte[bytes.Length - (bytescount - maxLen)];
- Buffer.BlockCopy(bytes, (bytescount - maxLen), newArray, 0, newArray.Length);
- fld = encoding.GetString(newArray);
- }
- }
- else
- {
- Console.WriteLine("Hibás maxlength!");
- return null;
- }
- return fld;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- // Működik! *boldog elsős*
- Console.WriteLine("String:");
- string s = Console.ReadLine();
- Console.WriteLine("maxlen:");
- int x = int.Parse(Console.ReadLine());
- Console.WriteLine("fromEnd? 1 / 0");
- int a = int.Parse(Console.ReadLine());
- bool c = a == 1 ? true : false;
- Console.WriteLine(Util.truncField(s, x, c));
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment