اذهب إلى المحتوى
  • 0

كيف أختبر سلسلة نصية فيما إذا كانت تحتوي على عدد صحيح باستخدام روبي؟

MaxReve

السؤال

أحتاج إلى دالة تختبر لي فيما إذا كانت السلسلة النصية تحتوي على عدد صحيح أم لا، أي إذا كانت تحتوى على عدد صحيح سوف ترجع لي true وسترجع false إذا كان عكس ذلك.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

هنالك عدة طرق لاختبار ما إذا كانت السلسلة نصية تحتوي على عدد صحيح أو لا في روبي وأبسط مثال لمعرفة ذلك هي عن طريق استخدام التعابير النمطية كما في المثال التالي الذي قمنا فيه بإنشاء صنف بداخله دالة الاختبار:

class String
    def is_i?
       !!(self =~ /\A[-+]?[0-9]+\z/)
    end
end

كما يمكنك كتابة المثال السابق بطريقة أخرى كما في هذا المثال الثاني:

class String
    def is_i?
       /\A[-+]?\d+\z/ === self
    end
end

وفي حالة ما أردت أن تتأكد من الأرقام الموجبة فقط يمكنك استعمال هذا المثال:

  if !/\A\d+\z/.match(string_to_check)
      #Is not a positive number
  else
      #Is all good ..continue
  end
رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

يمكنك إنجاز ذلك كالتالي:

def is_number? string
  true if Float(string) rescue false
end

الاستدعاء:

my_string = '12.34'
is_number?( my_string )
# => true

أيضًا يمكنك أن تعرّف هذه الدالة، بحيث تكون قادراً على استدعائها مباشرة من خلال الصنف String كالتالي:

class String
  def is_number?
    true if Float(self) rescue false
  end
end

بالتالي يكون استدعائها بالشكل:

my_string.is_number?
# => true

أو يمكنك تعريفها بالشكل إذا كنت تريد التعامل مع الأعداد الصحيحة فقط:

def is_num?(str)
  !!Integer(str)
rescue ArgumentError, TypeError
  false
end

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...