if (description.ToUpper().Contains("BOUGHT") || description.ToUpper().Contains("PURCHASE"))
Run Code Online (Sandbox Code Playgroud)
上面的代码是我所拥有的,我想知道我是否有相同条件的更长的字符串列表,如何在不使代码太长的情况下执行此操作.也许一个lambda表达?
我有以下测试:
public class EqualityTest
{
String one = new String("Hello world");
String two = new String("Hello ") + new String("world");
@Test
public void testStringPool()
{
assertFalse(one == two); // FALSE!!!
assertTrue(one.equals(two));
assertTrue(one.intern().equals(two.intern()));
}
}
Run Code Online (Sandbox Code Playgroud)
我原以为由于Java的字符串池特性,VM会分配一个和两个指向池中相同的字符串.在这种情况下,为什么我的理解错了?
我对比较"错误"感到困惑.我编码这种比较的方式,我想确保如果用户输入除 0或1 之外的任何值(或没有值),结果应为0:
session_start();
function test( $status = 0 ) {
if( !isset($_SESSION['status']) ) { $_SESSION['status'] = 0; }
else {
switch( $status ) {
case 0: $_SESSION['status'] = $status;
break;
case 1: $_SESSION['status'] = $status;
break;
default:
$_SESSION['status'] = 0;
$status = 0;
}
}
echo 'Variable value: ' . $status;
echo ' | Session value: ' . $_SESSION['status'] . "<br/>";
}
test();
test(0);
test(1);
test(999);
test('ready');
Run Code Online (Sandbox Code Playgroud)
然而,它打破在test('ready');,因为它输出Variable value: ready | Session value: ready …
正如我的标题所说.我需要在文件中搜索字符串.当它找到时,我需要下一行.这是一个这样的文件:
你好
世界
当找到"你好"时,需要返回"世界".
File file = new File("testfile");
Scanner scanner = null;
try {
scanner = new Scanner(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (scanner != null) {
String line;
while (scanner.hasNextLine()) {
line = scanner.nextLine();
if (line == "hello") {
line = scanner.nextLine();
System.out.println(line);
}
}
}
Run Code Online (Sandbox Code Playgroud)
它读取文件,但没有找到"你好"这个词.
我需要编写一个函数,它接受一个字符和一个字符串作为输入,然后将该字符与字符串中的每个元素进行比较.然后打印并最终返回字符出现在字符串中的次数.
这是我提出的代码,但它没有以正确的方式运行.如果有人能解释并纠正错误,我会很感激.
我想先写一个比较两个字符的函数来检查它们是否相等,如下所示:
def func1(x1, x2):
if x1 == x2:
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)
然后,我想我会选择另一个主要功能:
def func2():
ch1 = input("Enter one character. ")
str1 = str(input("Enter a string. "))
list_1 = list(str1)
a = 0
for 1 in list_1:
if func1(ch1, list_1):
a += 1
else:
a += 0
print(a)
return a
Run Code Online (Sandbox Code Playgroud)
这里有什么错误?如果我选择"a"作为我的角色,然后输入一个五个字母的字符串作为我的字符串,该函数仍然告诉我"a"只出现在字符串中一次.为什么这样,我该如何解决?
我有2个字符串数组.一个是基础,另一个是变化.
string[] baseArray = { "Gold", "Silver", "Bronze" };
string[] readArray = { "Bronze", "Silver", "Gold" };
// After comparing the readArray over the baseArray the result should be this
//string match = "Gold";
Run Code Online (Sandbox Code Playgroud)
我想按照baseArray的顺序获得第一名.
//Example2
string[] readArray = { "Bronze", "Silver" };
//string match should be "Silver"
Run Code Online (Sandbox Code Playgroud) 我想比较2个字符串但是当我做一个strcmp函数时,它告诉我:
'strcmp' : cannot convert parameter 1 from 'std::string'
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
这是我的代码:
int verif_file(void)
{
string ligne;
string ligne_or;
ifstream verif("rasphone");
ifstream original("rasphone.pbk");
while (strcmp(ligne, "[SynCommunity]") != 0 &&
(getline(verif, ligne) && getline(original, ligne_or)));
while (getline(verif, ligne) && getline(original, ligne_or))
{
if (strcmp(ligne, ligne_or) != 0)
return (-1);
}
return (0);
}
Run Code Online (Sandbox Code Playgroud) 我遇到了一些问题,我需要使用Java语言比较两个字符串(或任何其他对象)的相等/不相等.String Object上有两种方法对此目的非常有用.compareTo(Object O),返回一个比较的整数结果而另一个equals(Object o)返回一个布尔值.我的问题是,虽然有一个变量compareTo()将特定的String作为输入而不是通用的Object,为什么没有这样的变体equals()?我经常遇到的一个问题是,当我在一个对象上调用equals方法并将通用对象作为参数传递时,它不会抛出任何编译错误.考虑下面的代码片段(这不是一个真实的例子,但我写的只是说明我的观点).
String testStr = new String("1");
Integer testInt = new Integer(1);
testStr.compareTo(testInt.toString()); // compiles
testStr.equals(testInt.toString()); // compiles
testStr.equals(testInt); // compiles and will be always false
testStr.compareTo(testInt); // doesn't compile
Run Code Online (Sandbox Code Playgroud) 我not in在使用Python 2.7中的比较运算符时遇到问题.我有一个美国州缩写列表,我想检查给定的缩写是否不在该列表中,所以我使用:
'IL' not in states['Abbreviation']
Run Code Online (Sandbox Code Playgroud)
没想到,我得到了一个真实; 但是,当我做以下事情时,我也得到了一个真实的.
'IL' == states['Abbreviation'][13]
Run Code Online (Sandbox Code Playgroud)
'IL'是缩写列表中的第14项,当我使用时,==我可以证明它在列表中; 但是,当我使用not in比较时,它没有在列表中看到它?是什么赋予了?
我对python有点新意,所以希望答案不是太尴尬.
谢谢,
迈克尔
编辑:是的,在发布之前我尽力'谷歌'回答,但在谷歌搜索"不在"的条款是徒劳的努力,我上面描述的行为似乎与比较的方式不一致据说在文件中工作.
EDIT2:列表
in[89]: states['Abbreviation']
out[89]:
0 AL
1 AK
2 AZ
3 AR
4 CA
5 CO
6 CT
7 DE
8 DC
9 FL
10 GA
11 HI
12 ID
13 IL
14 IN
15 IA
16 KS
17 KY
18 LA
19 ME
20 MT
21 NE
22 NV
23 NH
24 NJ …Run Code Online (Sandbox Code Playgroud) 我被要求预测此代码的输出:
String party1 = "party";
String party2= "PARTY".toLowerCase();
if(party1==party2){
System.out.println("EQUAL");
}else{
System.out.println("NOT EQUAL");
}
Run Code Online (Sandbox Code Playgroud)
我认为的结果toLowerCase()将被自动插入,因此party1将返回相同的引用,但是由于代码输出“ NOT EQUAL”,我是错的。
是否toLowerCase()(toUpperCase()以及)返回一个新的String?
编辑:我不使用==比较字符串,我只想了解toLowerCase()方法的行为