Arduino String/Dizi Karşılaştırma Operatörleri
Arduino String/Dizi Karşılaştırma Operatörleri. Dize karşılaştırma işleçleri ==
!=
, >
, <
, >=
, <=
Ve equals()
ve equalsIgnoreCase()
yöntemleri, Dizeler arasında alfabetik karşılaştırmalar yapmanıza olanak tanır. Diğer şeylerin yanı sıra sıralama ve alfabetik için kullanışlıdırlar.
Operatör ==
ve yöntem equals()
aynı şekilde çalışır. Diğer bir deyişle,
if (stringOne.equals (stringTwo)) {
aynıdır:
eğer (stringOne == stringTwo) {
“>” (Büyüktür) ve “<” (Küçüktür) operatörler, dizeleri alfabetik sırayla, ikisinin de değiştiği ilk karakterde değerlendirir. Yani, örneğin, "a" < "b"
ve "1" < "2"
, ancak "999" > "1000"
çünkü 9, 1’den sonra gelir.
Dikkat: Dize karşılaştırma operatörleri, sayısal dizgileri karşılaştırırken kafa karıştırıcı olabilir, çünkü sayılar sayı olarak değil, dizeler olarak ele alınır. Sayıları karşılaştırmanız gerekiyorsa, bunları Ints, float veya long olarak karşılaştırın ve Strings olarak değil.
Donanım
- Arduino veya Genuino
“Arduino UNO, elektronik ve kodlamaya başlamak için en iyi tahtadır. Bu, platformla birlikte çalıştığınız ilk deneyiminizse, Arduino UNO, denemelere başlayabileceğiniz en iyi seçimdir. UNO, tüm Arduino ailesinin en çok kullanılan ve içeriği bulunan kartıdır.
Arduino Uno, ATmega328P tabanlı bir mikro denetleyici karttır. 14 adet dijital giriş / çıkış pini (6’sı PWM çıkışı olarak kullanılabilir), 6 analog giriş, 16 MHz kristali, bir USB bağlantısı, bir güç girişi, bir ICSP başlığı ve bir sıfırlama düğmesi vardır. Mikrodenetleyiciyi desteklemek için gereken her şeyi içerir; Başlamak için bir USB kablosuyla bir bilgisayara bağlayın ya da AC-DC adaptörü ya da pille çalıştırın. UNO’yu, yanlış bir şey yapmadan çok fazla endişe etmeden tamir edebilir, en kötü durum senaryosunu değiştirebilirsiniz. Birkaç dolara çip alır ve tekrar kullanabilirsiniz.”
Devre
Bu örnek için devre yoktur, kartınızın USB üzerinden bilgisayara bağlı olması ve Arduino Yazılımının (IDE) seri monitör penceresi açık olmalıdır.
Kod
/* Dizeleri Karşılaştırma Karşılaştırma işleçlerini kullanarak Dizeleri karşılaştırma örnekleri oluşturuldu 27 Tem 2010 değiştirilme tarihi 2 Nis 2012 Tom Igoe tarafından Bu örnek kod kamu malıdır. http://www.arduino.cc/en/Tutorial/StringComparisonOperators */ String stringOne, stringTwo; void setup() { // Seri haberleşmeyi açın ve bağlantı noktasının açılmasını bekleyin: Serial.begin(9600); while (!Serial) { ; // bağlanmak için seri portu bekleyin. Sadece yerel USB bağlantı noktası için gerekli } stringOne = String("Bu"); stringTwo = String("Şu"); // bir giriş gönderin: Serial.println("\n\nDizeleri Karşılaştırma:"); Serial.println(); } void loop() { // iki Dizgisi eşittir: if (stringOne == "Bu") { Serial.println("StringOne == \"Bu\""); } // iki Dizgiler eşit değil: if (stringOne != stringTwo) { Serial.println(stringOne + " =! " + stringTwo); } // iki Dizgisi eşit değil (büyük / küçük harf duyarlılığı önemlidir): stringOne = "Bu"; stringTwo = "bu"; if (stringOne != stringTwo) { Serial.println(stringOne + " =! " + stringTwo); } // İki Dizenin aynı olup olmadığını görmek için equals() öğesini de kullanabilirsiniz: if (stringOne.equals(stringTwo)) { Serial.println(stringOne + " eşittir " + stringTwo); } else { Serial.println(stringOne + " eşit değildir " + stringTwo); } // veya belki durumu görmezden gelmek istersiniz: if (stringOne.equalsIgnoreCase(stringTwo)) { Serial.println(stringOne + " eşittir (büyük / küçük harf) " + stringTwo); } else { Serial.println(stringOne + " eşit değildir (durumu göz ardı eder) " + stringTwo); } // temsil ettiği numarayla karşılaştırıldığında sayısal bir String: stringOne = "1"; int numberOne = 1; if (stringOne.toInt() == numberOne) { Serial.println(stringOne + " = " + numberOne); } // iki sayısal Dizgi karşılaştırıldı: stringOne = "2"; stringTwo = "1"; if (stringOne >= stringTwo) { Serial.println(stringOne + " >= " + stringTwo); } // karşılaştırma operatörleri alfabetik sıralama için Dizeleri de karşılaştırmak için kullanılabilir: stringOne = String("Kahverengi"); if (stringOne < "Charles") { Serial.println(stringOne + " < Charles"); } if (stringOne > "Adams") { Serial.println(stringOne + " > Adams"); } if (stringOne <= "Browne") { Serial.println(stringOne + " <= Browne"); } if (stringOne >= "Brow") { Serial.println(stringOne + " >= Brow"); } // compareTo() operatörü ayrıca Dizeleri karşılaştırmanıza olanak tanır // farklı olan ilk karakter üzerinde değerlendirir. // ile karşılaştırdığınız dizenin ilk karakteri ilk sırada gelirse // alfasayısal sıralama, ardından compareTo() 0'dan büyüktür: stringOne = "Cucumber"; stringTwo = "Cucuracha"; if (stringOne.compareTo(stringTwo) < 0) { Serial.println(stringOne + " önce gelir " + stringTwo); } else { Serial.println(stringOne + " sonra gelir " + stringTwo); } delay(10000); // çünkü sonraki bölüm bir döngüdür: // compareTo(), sayıları olan Dizeleri aldığınızda da kullanışlıdır: while (true) { stringOne = "Sensor: "; stringTwo = "Sensor: "; stringOne += analogRead(A0); stringTwo += analogRead(A5); if (stringOne.compareTo(stringTwo) < 0) { Serial.println(stringOne + " önce gelir " + stringTwo); } else { Serial.println(stringOne + " sonra gelir " + stringTwo); } } }
Kaynak:arduino.cc