我有代码使用StreamReader从文件中读取HTML,然后调用ReadToEnd()函数.HTML存储为字符串.
然后我调用这行代码:
string bookmarksBar = HTMLDoc.Substring(HTMLDoc.IndexOf(">Bookmarks bar</H3>"), HTMLDoc.IndexOf("</DL><p>"));
Run Code Online (Sandbox Code Playgroud)
所以这里发生的是我想要HTML的特定部分,所以我使用字符串Substring方法.第一个参数是startIndex,第二个参数是length.
我正在使用IndexOf方法,以便这行代码将返回一段应该在">Bookmarks bar</H3>"和之间的文本"</DL><p>"
所以返回的字符串的结尾应该"</DL><p>"是找到的位置,对吧?
那么问题是字符串不会在</DL><p>找到的地方结束,但在此行结束时会结束323个字符(我插入了四个星号来说明返回的字符串结束的位置):
ICON="data:image/png;base64,iVBORw0KGgoAAA****ANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABbklEQVQ4je3RPWuTYQCF4fs875uYKEilOA
Run Code Online (Sandbox Code Playgroud)
我无法理解它为什么会在这里结束,因为此时字符串不匹配"</DL><p>".
所以这是HTML的一个更大的部分:
jNpXrXKt4WFgn/KY1J1yBg874KWb0Vmr+BSttzgKt3LuBAAAAAElFTkSuQmCC\"></A>\r\n </DL><p>\r\n <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1301438557\">Link 1</H3>\r\n <DL><p>\r\n <DT><H3 ADD_DATE=\"1282073650\" LAST_MODIFIED=\"1286905747\">Link2</H3>\r\n <DL><p>\r\n <DT><A HREF=\"http://creators.xna.com/en-GB/create_detail#tour_four\" ADD_DATE=\"1282073650\" ICON=\"data:image/png;base64,iVBORw0KGgoAAA"
Run Code Online (Sandbox Code Playgroud)
您可以"</DL><p>"在上面的HTML中看到,那么为什么它不会在那时停止,而不是停在"KGgoAAA"?
有任何想法吗?
谢谢
如何检查字符串中char的索引?
var str = 'alabama';
alert(str.indexOf('a'));
Run Code Online (Sandbox Code Playgroud)
"indexOf"方法似乎只在第一次出现char时起作用.有任何想法吗?
我想找到一个字符串前面是否有"/",在我的代码中我得到了字符串的索引,并找出它前面的字符是否有任何东西,哪个有效,但我如何找到它实际上是正斜杠.这是我的代码:
string test = "/images/";
if (test.IndexOf(@"images/") - 1 == -1)
{
}
Run Code Online (Sandbox Code Playgroud)
编辑
我的一些字符串可能有完整的URL,有些可能是如上所述,有些可能没有/根本没有/因此使用索引
所以我得到String索引超出范围意味着我超出了集合的范围,但我不太确定我是如何用我的代码做的.
这段代码应该从一个包含3个整数的文本文件中读取(前两个是分别与行数和列数相关的内容),然后是一系列字符.首先,它读取并保存前三个数字,然后将文件的其余部分转换为String.然后,它通过设置字符数组与文本文件的尺寸,然后在这些值与由字符的文本文件的字符的字符填充遵循此起来.
但是,当我尝试打印出代码时,我遇到字符串索引超出范围错误,无法找到问题.
这是代码:
import java.util.*;
import java.io.*;
public class SnakeBox {
// instance variables
private char[][] box;
private int snakeCount;
private int startRow, startCol;
private int endRow, endCol;
private int rows, cols, snakes;
Scanner keyboard = new Scanner(System.in);
/** Create and initialize a SnakeBox by reading a file.
@param filename the external name of a plain text file
*/
public SnakeBox(String fileName) throws IOException{
Scanner infile = new Scanner(new FileReader(fileName));
int count = 0;
String s = "";
rows …Run Code Online (Sandbox Code Playgroud) 我试图在一个大字符串中找到字符串"\ r \n"(基本上换行和返回)的所有索引.
我需要这样做,因为我必须逐行将大字符串写入PDF文件(我必须在写完前一行后调用我正在使用的dll的换行符API).
这是代码的简短版本: -
string fileContents = "abc\r\n\r\ndef\r\nghi";
int pos = -1;
int start = 0;
while ((pos = fileContents.IndexOf("\r\n", start)) != -1)
{
//extract string
//write string to PDF
//call newline API
start = pos + 1;
}
Run Code Online (Sandbox Code Playgroud)
fileContents变量中"\ r \n"的预期位置是3,7和14.但是,在调试代码时,pos变量中的值是3,5和10.
我的indexOf()调用似乎有什么问题?
此代码适用于大多数(所有?)浏览器:
myDate = new Date();
alert(myDate.toString().indexOf("("));
Run Code Online (Sandbox Code Playgroud)
但是,在VB.Net WebBrowser控件中执行时,它返回-1.
这是为什么?
我想知道如何检查这个.例:
var products = [
{
title: 'Product 1',
categories: ['One', 'Two', 'Three']
},
{
title: 'Product 2',
categories: ['Three', 'Four']
}
];
var categories = ['Two','Four'];
Run Code Online (Sandbox Code Playgroud)
如何才能让这两种产品与其中一种产品相匹配?希望有人可以帮助我:)
我有一个像这样的整数向量:
a <- c(2,3,4,1,2,1,3,5,6,3,2)
values<-c(1,2,3,4,5,6)
Run Code Online (Sandbox Code Playgroud)
我想列出我的向量中的每个唯一值(被排序的唯一值),它们出现的位置.我想要的输出:
rep_indx<-data.frame(c(4,6),c(1,5,11),c(2,7,10),c(3),c(8),c(9))
Run Code Online (Sandbox Code Playgroud) 我正在尝试做一个indexof函数.但我们不允许在javascript中使用它或任何内置函数.所以我创造了自己的.我将它上传到我们的测试仪中,但只有一个条件我没有遇到过.谢谢!
这是我的代码:
function indexofmyversion(searchChar,index) {
var a="";
for(var i=0; i<=searchChar.length; i++){
if(searchChar[i] == index){
return i;
}
} return -1; }
Run Code Online (Sandbox Code Playgroud)
说我有一个字符串"老麦克唐纳有一个农场和".我想让子串"有一个农场".我希望在工作"麦克唐纳"之后得到任何东西,直到"农场"这个词
所以字符串中的常量是:
"麦克唐纳" - 我不想包含在子串中
"farm" - 我想包含它和子字符串中的结束字
我一直在尝试合并索引等功能,但似乎无法让它工作