我从Java进入C++,并且有一个共同的设计情况,其中我有一个元素(非原始的)我想从std :: vector中删除.
在Java中,我写的是:arrayList.remove(arrayList.indexOf(myClassInstance));
在C++中,使用std :: vector,这样做的最佳/最佳/最干净的方法是什么?
我能想到的最好的事情是创建一个对我正在搜索的实例的引用,然后迭代向量直到找到该引用.实质上,比较向量中每个元素的内存地址与引用,直到我得到匹配.
我是在正确的轨道上吗?或者有更好的方法吗?(也许使用不同的std容器,到目前为止我只使用了std :: vector.)
假设我有一个网址:
http://something.com/somethingheretoo
Run Code Online (Sandbox Code Playgroud)
我想得到第3次实例后的内容/?
类似的东西indexOf()让我输入我想要的反斜杠的哪个实例.
我看不出制作String.indexOf界面的任何缺点CharSequence.好处是其他类如StringBuffer或StringBuilder也需要实现indexOf方法.
那么有什么设计理由indexOf应该只是其中的一部分String吗?
谢谢.
不太了解这里发生的事情.给定数组(arr):
[
{
"first_name": "Dan",
"last_name": "Woodson",
"id": 1
},
{
"first_name": "Jen",
"last_name": "Woodson",
"id": 2
},
{
"first_name": "Yoshi",
"last_name": "Woodson",
"id": 3
}
]
Run Code Online (Sandbox Code Playgroud)
对象(obj):
{
"first_name": "Yoshi",
"last_name": "Woodson",
"id": 3
}
Run Code Online (Sandbox Code Playgroud)
为什么会arr.indexOf(obj)返回-1(特别是因为我在函数前面使用它的'id'参数从数组中检索了对象)?
在Firefox和Opera上的Javascript中使用indexOf调用获取错误.在IE中正常工作.
以下是错误消息:
行动
function anonymous(Grid, Row, Col, Event) {
return Grid.ActionShowPopupMenu();
}
Run Code Online (Sandbox Code Playgroud)
for事件OnRightClick失败,异常:row.id.indexOf不是函数
我正在测试一个字符串在Javascript中包含另一个字符串并使用字符串的indexOf函数.然而,调用是在JQuery函数中进行的.也许这就是问题的原因?是否有替代方法在Javascript中使用indexOf来测试字符串是否包含另一个字符串?这个问题有解决方法吗?
通过使用Jsoup,我从网站解析HTML以填充ArrayList我需要从网站获取的内容.所以现在我有一个ArrayList充满字符串的东西.我想在该列表中找到包含特定字符串的索引.例如,我知道列表中的某个地方,在某个索引中,有字符串(文字)"Claude",但我似乎无法制作任何代码,找到contains"Claude"中的索引ArrayList...这里是我尝试过但返回-1(未找到):
ArrayList < String > list = new ArrayList < String > ();
String claude = "Claude";
Document doc = null;
try {
doc = Jsoup.connect("http://espn.go.com/nhl/team/stats/_/name/phi/philadelphia-flyers").get();
} catch (IOException e) {
e.printStackTrace();
}
for (Element table: doc.select("table.tablehead")) {
for (Element row: table.select("tr")) {
Elements tds = row.select("td");
if (tds.size() > 6) {
String a = tds.get(0).text() + tds.get(1).text() + tds.get(2).text() + tds.get(3).text() + tds.get(4).text() + tds.get(5).text() + tds.get(6).text();
list.add(a);
int …Run Code Online (Sandbox Code Playgroud) 我的问题是String.IndexOf返回-1.我希望它会回归0.
参数:
text= C:\\Users\\User\\Desktop\\Sync\\?(注意组合海鸥下面的字符)
stringToTrim = C:\\Users\\User\\Desktop\\Sync\\
当我检查索引时,使用is int index = text.IndexOf(stringToTrim);的值.我发现使用序数字符串比较解决了我的这个问题:index-1
int index = text.IndexOf(stringToTrim, StringComparison.Ordinal);
Run Code Online (Sandbox Code Playgroud)
在线阅读,很多Unicode字符(如U + 00B5和U + 03BC)映射到相同的符号,因此最好扩展它并规范化两个字符串:
int index = text.Normalize(NormalizationForm.FormKD).IndexOf(stringToTrim.Normalize(NormalizationForm.FormKD), StringComparison.Ordinal);
Run Code Online (Sandbox Code Playgroud)
这是检查一个字符串包含另一个字符串的所有连续字符的索引的正确方法吗?所以我们的想法是,当你想要检查符号是否匹配时,你会规范化,但是当你想通过它们的编码值检查字符时你不规范化(因此允许重复的符号)?此外,有人可以解释为什么int index = text.IndexOf(stringToTrim);在字符串的开头找不到匹配?换句话说,它实际上是在做什么呢?我本来期望它开始从字符串的开头到字符串的结尾搜索字符.
我目前正在试图找出如何解决上述问题.具体来说,我想检查的字符串中不同时含有大写和小写字母的单词"流".
到目前为止,这是我的代码:
if (((gewaesser_name1.includes("Stream") == "false") ||
(gewaesser_name1.includes("stream") == "false")) &&
((gewaesser_name2.includes("Stream") == "false") ||
(gewaesser_name2.includes("stream") == "false")))
{var a= "..."}
Run Code Online (Sandbox Code Playgroud)
代码显然不起作用,因为结果不是我期望的结果.indexOf在使用以下语法变体之前,我还尝试使用该方法:
gewaesser_name2.indexOf("stream") == -1
gewaesser_name2.indexOf("stream") < 0
Run Code Online (Sandbox Code Playgroud)
这些变化似乎都不适合我.有人可以给我一个暗示这里有什么问题吗?我indexOf之前多次使用过该方法,但总是在我想检查字符串是否包含特定单词时,而不是相反.
以下代码没有给我正确的答案.
class Point {
int x; int y;
public Point(int a,int b){
this.x=a;this.y=b;
}
}
class A{
public static void main(String[] args){
ArrayList<Point> p=new ArrayList<Point>();
p.add(new Point(3,4));
p.add(new Point(1,2));
System.out.println(p.indexOf(1,2));
}
}
Run Code Online (Sandbox Code Playgroud)
这给了-1;
一般来说,如果给出了arraylist of point,我们怎样才能找到数组中特定点的索引?
我正在从一个带有空格后的非组合变音符号的字符串中创建一个子字符串。这样做时,我检查字符串,.Contains()然后执行子字符串。当我char在 an 中使用空格时.IndexOf(),程序按预期执行,但是当使用字符串“”时,.IndexOf()程序中会引发异常。如下面的示例所示,只有string在主要重音变音符号 (U+02C8) 之前的 a 会抛出ArgumentOutOfRangeException.
简单代码(由 John 建议编辑):
string a = "a? pr??z?nt";
string b = "ma? ?pr?znt";
// A
Console.WriteLine(a.IndexOf(" ")); // string index: 2
Console.WriteLine(a.IndexOf(' ')); // char index: 2
// B
Console.WriteLine(b.IndexOf(" ")); // string index: -1
Console.WriteLine(b.IndexOf(' ')); // char index: 3
Run Code Online (Sandbox Code Playgroud)
我测试的示例代码:
const string iPresent = "a? pr??z?nt",
myPresent = "ma? ?pr?znt";
if(iPresent.Contains(' '))
{
Console.WriteLine(iPresent.Substring(0, iPresent.IndexOf(' ')));
} …Run Code Online (Sandbox Code Playgroud)