learing:examples:string_comparison_operators
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版 | |||
learing:examples:string_comparison_operators [2017/10/05 03:47] – 弘毅 | learing:examples:string_comparison_operators [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== String Comparison Operators (字符比较)====== | ||
+ | 字符比较运算符 ==, !=,>, < ,>=, <= 和 equals() equalsIgnoreCase()使你可以在字符串里比较字母。 | ||
+ | == 和equals() 是等价的,也就是说 | ||
+ | |||
+ | < | ||
+ | |||
+ | 等同于 | ||
+ | |||
+ | < | ||
+ | |||
+ | ">" | ||
+ | |||
+ | 注意,当你比较数字字符串的时候字符串的比较运算可能会出问题,因为数字被处理成字符串了而不是数字。如果你需要比较数字,作为整型或者浮点型比较它们。 | ||
+ | |||
+ | ===== 硬件要求 ===== | ||
+ | |||
+ | |OCROBOT控制器| | ||
+ | |USB线| | ||
+ | |||
+ | 这个例子没有电路图,只需要通过USB线把你的OCROBOT控制器连上电脑,并且打开串口监视器。 | ||
+ | ===== ALPHA MEGA328-U核心 ===== | ||
+ | |||
+ | ==== 硬件 ==== | ||
+ | * [[ocrobot: | ||
+ | |||
+ | ==== 搭建电路 ==== | ||
+ | |||
+ | - USB线连接计算机与ALPHA MEGA328-U。 | ||
+ | |||
+ | ==== 代码 ==== | ||
+ | |||
+ | <code cpp>/* | ||
+ | Comparing Strings | ||
+ | */ | ||
+ | |||
+ | String stringOne, stringTwo; | ||
+ | |||
+ | void setup() { | ||
+ | // 串口通信 | ||
+ | Serial.begin(9600); | ||
+ | | ||
+ | stringTwo = String(" | ||
+ | // 标题 | ||
+ | Serial.println(" | ||
+ | Serial.println(); | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // 两个字符串相等: | ||
+ | if (stringOne == " | ||
+ | Serial.println(" | ||
+ | } | ||
+ | // 两个字符串不想等 | ||
+ | if (stringOne != stringTwo) { | ||
+ | Serial.println(stringOne + " =! " + stringTwo); | ||
+ | } | ||
+ | |||
+ | // 两个字符串不相等 (注意大小写): | ||
+ | stringOne = " | ||
+ | stringTwo = " | ||
+ | if (stringOne != stringTwo) { | ||
+ | Serial.println(stringOne + " =! " + stringTwo); | ||
+ | } | ||
+ | // | ||
+ | if (stringOne.equals(stringTwo)) { | ||
+ | Serial.println(stringOne + " equals " + stringTwo); | ||
+ | } else { | ||
+ | Serial.println(stringOne + " does not equal " + stringTwo); | ||
+ | } | ||
+ | |||
+ | // 或者你可以忽略大小写 | ||
+ | if (stringOne.equalsIgnoreCase(stringTwo)) { | ||
+ | Serial.println(stringOne + " equals (ignoring case) " + stringTwo); | ||
+ | } else { | ||
+ | Serial.println(stringOne + " does not equal (ignoring case) " + stringTwo); | ||
+ | } | ||
+ | |||
+ | // | ||
+ | stringOne = " | ||
+ | int numberOne = 1; | ||
+ | if (stringOne.toInt() == numberOne) { | ||
+ | Serial.println(stringOne + " = " + numberOne); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | // 两个数字型的字符串比较 | ||
+ | stringOne = " | ||
+ | stringTwo = " | ||
+ | if (stringOne >= stringTwo) { | ||
+ | Serial.println(stringOne + " >= " + stringTwo); | ||
+ | } | ||
+ | |||
+ | // 比较运算符也可以比较字母型的字符串 | ||
+ | stringOne = String(" | ||
+ | if (stringOne < " | ||
+ | Serial.println(stringOne + " < Charles" | ||
+ | } | ||
+ | |||
+ | if (stringOne > " | ||
+ | Serial.println(stringOne + " > Adams" | ||
+ | } | ||
+ | |||
+ | if (stringOne <= " | ||
+ | Serial.println(stringOne + " <= Browne" | ||
+ | } | ||
+ | |||
+ | |||
+ | if (stringOne >= " | ||
+ | Serial.println(stringOne + " >= Brow" | ||
+ | } | ||
+ | |||
+ | // compareTo()运算符可以比较字符串,它比较第一个不同的字符,如果比较的字符串的第一个字符按字母排序排在前面,compareTo() 就大于0 | ||
+ | stringOne = " | ||
+ | stringTwo = " | ||
+ | if (stringOne.compareTo(stringTwo) < 0) { | ||
+ | Serial.println(stringOne + " comes before " + stringTwo); | ||
+ | } else { | ||
+ | Serial.println(stringOne + " comes after " + stringTwo); | ||
+ | } | ||
+ | |||
+ | delay(10000); | ||
+ | |||
+ | // compareTo() 使用起来是很方便的,当你得到得到字符串和字符串里的数字 | ||
+ | while (true) { | ||
+ | stringOne = " | ||
+ | stringTwo = " | ||
+ | |||
+ | stringOne += analogRead(A0); | ||
+ | stringTwo += analogRead(A5); | ||
+ | |||
+ | if (stringOne.compareTo(stringTwo) < 0) { | ||
+ | Serial.println(stringOne + " comes before " + stringTwo); | ||
+ | } else { | ||
+ | Serial.println(stringOne + " comes after " + stringTwo); | ||
+ | |||
+ | } | ||
+ | } | ||
+ | }</ |