ZenScript main repository
Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

Strings.zs 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. export expand string {
  2. public get empty as bool => length == 0;
  3. public const in(c as char)as bool
  4. => indexOf(c) >= 0;
  5. public const indexOf(c as char) as int {
  6. for i in 0 .. length {
  7. if this[i] == c
  8. return i;
  9. }
  10. return -1;
  11. }
  12. public const indexOf(c as char, from as int) as int {
  13. for i in from .. length {
  14. if this[i] == c
  15. return i;
  16. }
  17. return -1;
  18. }
  19. public const lastIndexOf(c as char) as int {
  20. var i = length;
  21. while i > 0 {
  22. i--;
  23. if this[i] == c
  24. return i;
  25. }
  26. return -1;
  27. }
  28. public const lastIndexOf(c as char, until as int) as int {
  29. var i = until;
  30. while i > 0 {
  31. i--;
  32. if this[i] == c
  33. return i;
  34. }
  35. return -1;
  36. }
  37. public const split(delimiter as char) as string[] {
  38. val result = [] as string[];
  39. var start = 0;
  40. for i in 0 .. this.length {
  41. if this[i] == delimiter {
  42. result.add(this[start .. i]);
  43. start = i + 1;
  44. }
  45. }
  46. result.add(this[start .. $]);
  47. return result;
  48. }
  49. public const extern trim() as string;
  50. public const lpad(length as int, c as char) as string
  51. => this.length >= length ? this : c.times(length - this.length) + this;
  52. public const rpad(length as int, c as char) as string
  53. => this.length >= length ? this : this + c.times(length - this.length);
  54. }