PDA

View Full Version : دریافت مقادیر خاص از یک رشته



aliblk10
چهارشنبه 18 آذر 1394, 12:04 عصر
درود
به این رشته ها دقت کنید:
رشته شماره 1:
http://maps.google.com/maps?q=N35.34234234,E51.2312322 speed = 0.0 km/h

رشته شماره 2:
http://maps.google.com/maps?q=+35.34234234,+51.2312322 speed = 0.0 km/h

رشته شماره 3:
http://maps.google.com/maps?q=35.34234234,51.2312322 speed = 0.0 km/h

این سه رشته در واقع طول و عرض رو داره میفرسته. حالا یه الگوریتمی برای جداسازی طول و عرض از این رشته ها میخوام.
یعنی میخوام دو تا متغیر های زیر طول و عرض رو دریافت کنن:
متغیر A بشه : 35.34234234
متغیر B بشه : 51.2312322

البته من با الگوی زیر میتونم از رشته اول متغیر هارو بصورت صحیح بگیرم
Pattern n = Pattern.compile("N(\\d+(\\.\\d+)?)(.*?)\\b");
Pattern e = Pattern.compile("E(\\d+(\\.\\d+)?)(.*?)\\b");
ولی نمیخوام برای هر رشته جداگونه بنویسم. کسی میدونه چه راه حلی بهتره که حتی اگه یه رشته جدیدی هم غیر از این سه تا باشه بشه طول و عرض رو گرفت؟

ho3ein.3ven
چهارشنبه 18 آذر 1394, 14:35 عصر
سلام . با تابع split به راحتی میتونید این مقادیر رو از رشته استخراج کنید

aliblk10
چهارشنبه 18 آذر 1394, 14:45 عصر
تشکر دوست عزیز
ولی برای اسپلیت یکم تو در تو هست و باید مرتب اسپیلیت بزنیم تا به رشته دلخواه برسیم.

من تونستم اون الگو رو که میخواستم پیدا کنم
برای این کار از الگوی "(\\d\\d\\.\\d+)" استفاده میکنم و این الگو در هر نوعپ رشته میره میگرده و فقط و طول و عرض رو واسم در میاره.

msroid
پنج شنبه 19 آذر 1394, 23:12 عصر
سلام
با استفاده از تابع split بر اساس "," از هم جدا کن. بعدش با استفاده از تابع replaceAll که در تاپیک زیر مثالش رو زدم میتونی در هر کدوم از دو رشته جدا شده فقط اعداد رو بیرون بکشی.

جدا کردن عدد از رشته (http://barnamenevis.org/showthread.php?512465-%D8%AC%D8%AF%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D8%B9%D8%AF%D8%AF-%D8%A7%D8%B2-%D8%B1%D8%B4%D8%AA%D9%87!)

فقط احتمالا ممیز رو از قلم میندازه که اونم خودت دستی میتونی اضافه کنی بعد تبدیلش کنی به عدد.