sql里面字符串没有大小之分,只有长度之分,可以比较长度大小,但是想用一条sql语句直接拿到大小结果来说也不太方便,最好是借助程序或者sql脚本来做,我用oracle试了下,用case when函数是可以直接比较大小的,比如第一个值比第二个大输出0,否则输出1:
select length('asd') as len1,length('as') as len2 from dual) t
字符串比较,看下面的举个栗子:
Systemoutprintln("aBc"equals("abc"));//falseSystemoutprintln("aBc"equalsIgnoreCase("abc"));//true 忽略大小写的比较
当不知道方法的作用,点进去看源码的注释:可以用翻译工具翻译可以猜个八九不离十
/
Compares this {@code String} to another {@code String}, ignoring case
considerations Two strings are considered equal ignoring case if they
are of the same length and corresponding characters in the two strings
are equal ignoring case
<p> Two characters {@code c1} and {@code c2} are considered the same
ignoring case if at least one of the following is true:
<ul>
<li> The two characters are the same (as compared by the
{@code ==} operator)
<li> Applying the method {@link
javalangCharacter#toUpperCase(char)} to each character
produces the same result
<li> Applying the method {@link
javalangCharacter#toLowerCase(char)} to each character
produces the same result
</ul>
@param anotherString
The {@code String} to compare this {@code String} against
@return {@code true} if the argument is not {@code null} and it
represents an equivalent {@code String} ignoring case; {@code
false} otherwise
@see #equals(Object)
/
c语言中case是和switch一起使用的,构成switch—case语句,进行判断选择,case是用来表示选择结构的。
switch语句的一般形式为:
switch(表达式){
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
…
case 常量表达式n: 语句n;
default: 语句n+1;}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
扩展资料
任何switch语句都必须遵循以下规则:
1、只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
2、switch()的参数类型不能为实型 。
3、case标签必须是常量表达式(constantExpression),如42或者"42"。
4、case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
参考资料来源:百度百科——switch
switch语句中只能用int或者可以转为int的娈量(如char)作参数,字符串是不行的sc_str()也只是把字符串变成了字符数组,也是不可以用switch来判断的。
另外,要记得用switch语句时,case执行后要加break;跳出,不然所有的case都会执行一遍的。
建议直接比较,代码也不会变多的,如
switch(sc_str()){
case "-": return 'A';
case "-":return 'B';
case "--":return 'C';
可以改为:
if(s=="-")
return 'A';
if(s=="-"")
return 'B';
if(s=="--")
return 'C';
这样用起来还保险1、可以使用串的IndexOf、LastIndexOf来比较寻找
2、示例:
using System;using SystemCollectionsGeneric;using SystemComponentModel;using SystemData;using SystemDrawing;using SystemText;using SystemWindowsForms; namespace WindowsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string s="Hello world"; if (sIndexOf("l") != 0) { MessageBoxShow(sIndexOf("l")ToString() + " " + sLastIndexOf("l")ToString()); } } }}对于这个问题,我在我的软件中采用求ASC码值的方法,将每一位的ASC码值加起来,再case of,(因为我们事先知道具体的字符串,要不然,您怎么比较呢?)
我做的例子的unit1窗体如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R dfm}
procedure TForm1Button1Click(Sender: TObject);
var
s:string;
i,j,k:integer;
begin
s := Edit1Text;
j := length(s);
i :=0;
for k :=1 to j do
i := i+ord(s[k]);
case i of
97:messagebox(0,'50','50',mb_ok);{假设为a 97}
98:messagebox(0,'51','51',mb_ok);{假设为b 97}
{常数N:语句N
}
else caption:=inttostr(i);
end;
end;
end
-----------------------------------------------
unit1窗体中,就一个组件,ord()函数是求字符的原始值 ord(s[k]),就是ASC码
-----------------------------------------------
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)