小编Thi*_*mer的帖子

使用ArrayList的迭代器时ArrayIndexOutOfBoundsException

现在,我有一个包含一段代码的程序,如下所示:

while (arrayList.iterator().hasNext()) {
     //value is equal to a String value
     if( arrayList.iterator().next().equals(value)) {
          // do something 
     }
}
Run Code Online (Sandbox Code Playgroud)

我是否正确,只要迭代ArrayList就可以了?

我得到的错误是:

java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.ArrayList.get(Unknown Source)
    at main1.endElement(main1.java:244)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at javax.xml.parsers.SAXParser.parse(Unknown Source)
    at main1.traverse(main1.java:73)
    at main1.traverse(main1.java:102)
    at main1.traverse(main1.java:102)
    at main1.main(main1.java:404)
Run Code Online (Sandbox Code Playgroud)

我会显示其余的代码,但它非常广泛,如果我没有正确地进行迭代,我会假设唯一的可能性是我没有ArrayList正确初始化.

java iterator arraylist indexoutofboundsexception

102
推荐指数
6
解决办法
39万
查看次数

替代Java中的嵌套切换语句

所以今天我编写了一个方法,结合了嵌套switch语句的使用,代码看起来相当简洁和简洁,但我被告知嵌套的switch语句通常不是最好的方法,因为它们可能会让人感到困惑.您添加的switch语句.以下是我的代码的示例:

EnumOne enumOne;
EnumTwo enumTwo = null;
EnumTwo enumThree = null;

switch (enumOne) {
   case CASE_ONE:

      switch (enumTwo){
         case A: enumTwo = EnumTwo.B; break;
         case C: enumTwo = EnumTwo.D; break;
         default: break;
      }

      switch (enumThree) {
         case AA: enumThree = EnumTwo.BB; break;
         case CC: enumThree = EnumTwo.DD; break;
         default: break;
      }

      break;

   case CASE_TWO:
   case CASE_THREE:

      switch(EnumTwo) {
         default: break;
      }

      switch (enumThree) {
         case AA: enumThree = EnumTwo.XX; break;
         case CC: enumThree = EnumTwo.YY; break;
         default: break;
      }

      break; …
Run Code Online (Sandbox Code Playgroud)

java performance nested switch-statement

18
推荐指数
3
解决办法
3万
查看次数

你需要在Java中逃脱*角色吗?

所以我在我的程序中编写了一小段代码,它使用split方法解析并对字符串中包含的各个组件进行排序.以下是代码示例:

String[] sArray;

String delimiter = "*";

String test = "TEXT*TEXT*TEXT*";
String a = "";
String b = "";
String c = "";

sArray= test.split(delimiter);

a = sArray[0];
b = sArray[1];
c = sArray[2];

System.out.println("A is: " + a + "\nB is: " + b + "\nC is: " + c);
Run Code Online (Sandbox Code Playgroud)

但是,当我运行此程序时,它会返回一个错误,指出:

Dangling meta character '*' near index 0

所以我搜索了这个错误,发现它可能与如何*在正则表达式中被视为通配符的问题有关.所以我尝试过:

String delimiter = "\*"

但那只是返回了另一个错误说明:

illegal escape character

有没有人之前遇到过这个问题,或者知道你是如何(如果你的话)应该*在java中逃脱?

java string split escaping wildcard

10
推荐指数
2
解决办法
1万
查看次数

使用客户端对象模型在SharePoint中更新字段值

所以我试图创建一个主要用于更改SharePoint中字段值的方法.

这就是我到目前为止......

static String fieldName1 = "Title";
static String fieldName2 = "Keywords";
static String title = "A Beautiful Sunset";
static String keywords1 = "test1";
static String keywords2 = "test2";
static String keywords3 = "test3";

static NetworkCredential credentials = new NetworkCredential(username, password, domain);
static ClientContext clientContext = new ClientContext(URL);
static Web site = clientContext.Web;
static List list = site.Lists.GetByTitle(listName);
static FileCreationInformation newFile = new FileCreationInformation();

private static void updateFields()
{
    clientContext.Load(list);
    FieldCollection fields = list.Fields;
    clientContext.Load(fields);
    clientContext.Load(list.RootFolder);

    ListItemCollection listItems = list.GetItems(CamlQuery.CreateAllItemsQuery()); …
Run Code Online (Sandbox Code Playgroud)

c# sharepoint field sharepoint-clientobject

7
推荐指数
1
解决办法
6万
查看次数

在Java中使用Python脚本(Eclipse)

我一直在寻找将我为朋友制作的Python脚本合并到我正在尝试开发的Java应用程序中.经过一些试验和错误,我终于发现了'Jython',并使用PythonInterpreter尝试运行脚本.

但是,在尝试运行它时,我在Python脚本中收到错误.这很奇怪,因为当我尝试在Java之外运行脚本(在这种情况下是Eclipse IDE)时,脚本工作正常并完全符合我的需要(从存储在同一目录中的.docx文件中提取所有图像).

有人可以帮帮我吗?

Java的:

import org.python.core.PyException;
import org.python.util.PythonInterpreter;

public class SPImageExtractor
{
    public static void main(String[] args) throws PyException
    {   
        try
        {
            PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
            PythonInterpreter interp = new PythonInterpreter();
            interp.execfile("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Image-Extractor2.py");
        }
        catch(Exception e)
        {
            System.out.println(e.toString());
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

关于Python脚本的Java错误:

回溯(最近一次调用最后一次):
文件"C:/ Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Image-Extractor2.py",第19行,在thisDir中,_ = path.split(路径. abspath(argv [0]))IndexError:索引超出范围:0回溯(最近一次调用最后一次):
文件"C:/ Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Image-Extractor2.py ",第19行,在thisDir中,_ = path.split(path.abspath(argv [0]))IndexError:index超出范围:0


蟒蛇:

from os import path, chdir, listdir, mkdir, gcwd
from sys import …
Run Code Online (Sandbox Code Playgroud)

python java eclipse interpreter jython

6
推荐指数
1
解决办法
3163
查看次数

命名空间"SharePoint"在命名空间"Microsoft"中不存在

所以我开始学习C#,就像字面上刚刚开始学习,并且来自Java背景,它看起来并不太糟糕.但是,我有一个问题.我正在按照教程使用客户端对象模型.刚从顶部开始,我添加了引用,但using Microsoft.SharePoint.Client;一直给我一个错误,"命名空间'SharePoint'在命名空间'Microsoft'中不存在,但我清楚地看到它在右侧面板上.所以看着说明,我能想到的唯一区别是我使用的是Visual Studio Express,因此没有选择在创建新项目时选择使用哪个框架.除此之外,我不知道是什么问题可能是.有没有人对我可能缺少什么或如何纠正这个问题有任何想法?

.net c# sharepoint new-operator sharepoint-clientobject

6
推荐指数
4
解决办法
2万
查看次数

如何在Java中使用ByteBuffer的Wrap方法

好吧,所以我正在查找从字节数组转换为java中的数值的最佳方法是什么,我遇到了这个链接.第二个答案提到了ByteBuffer类的使用.对于那些不希望点击链接的人,最初问题是否我有:

byte[] by = new byte[8];
Run Code Online (Sandbox Code Playgroud)

如何将其转换为int?答案是......

ByteBuffer bb = ByteBuffer.wrap(new byte[] {0, 0, 0, 0, 0, 0, 0, 4});
long l = bb.getLong();

System.out.println(l);
Run Code Online (Sandbox Code Playgroud)

结果

4
Run Code Online (Sandbox Code Playgroud)

这真是太棒了,但我只是想在走这条路之前确认一些事情.

假设我之前读取的字节数组长度为8个字节.

byte[] oldByte = new byte[8];
Run Code Online (Sandbox Code Playgroud)

那我呢......

ByteBuffer bb = ByteBuffer.wrap(new byte[] {oldByte[2], oldByte[3]});
int intValue = bb.getInt();
Run Code Online (Sandbox Code Playgroud)

是否会以与前一个示例相同的方式读取/读取?

java arrays byte bytebuffer type-conversion

6
推荐指数
1
解决办法
2万
查看次数

如何从JsonObject创建InputStream对象

我试图弄清楚如何检索存储在JsonObject中的原始字节并将其转换为InputStream对象?

我想它可能是这样的:

InputStream fis = new FileInputStream((File)json.getJsonObject("data"));
Run Code Online (Sandbox Code Playgroud)

虽然我没有尝试过,但只是想知道是否有人有这方面的经验,并知道这样做的首选方式?

java rest json inputstream file

6
推荐指数
2
解决办法
2万
查看次数

复制XML文件以写入Java中的新XML文件

我想知道是否有人知道是否可以使用Java中的一个XML解析器逐行读取XML文档中的每一行,并基本上在另一个XML文件中重现相同的文档?(在我的例子中,只取出文档中从点X到点Y的行并复制它们).我考虑过在小型试运行中使用bufferedreader和bufferedwriter,但它没有完全正确地输出文件.以下是我在试运行中所做的事情,但这不是我想要的.那么有没有人有这方面的经验或有任何想法或建议提供?先感谢您.

JAVA CODE

public class IPDriver 
{
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new FileReader("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/document.xml"));
        BufferedWriter writer = new BufferedWriter(new FileWriter("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Extracted Items/ProposalOne/word/tempdocument.xml"));

        String line = null;

        while ((line = reader.readLine()) != null)
        {
            writer.write(line);
        }

        // Close to unlock.
        reader.close();
        // Close to unlock and flush to disk.
        writer.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

使用Ted Hopp工作JAVA代码

public class IPDriver 
    {
        public static void main(String[] args) throws IOException
        { …
Run Code Online (Sandbox Code Playgroud)

java xml file-io bufferedreader xml-parsing

4
推荐指数
1
解决办法
1万
查看次数

在没有固有的 WithDayOfMonth 方法的情况下使用 DateTime 将日期设置为每月第一天的最佳方法

因此,我基本上尝试获取 2 个 DateTime 对象并将它们设置为各自月份的第一天,以便我最终可以计算两个日期之间的月份。

代码示例:

DateTime dt = new DateTime();
DateTime newDT = dt.withDayOfMonth(1);
Run Code Online (Sandbox Code Playgroud)

在任何人询问之前,实际代码将 Date 对象转换为 DateTime 对象,该对象在代码的另一部分中使用。

问题是,当我在单元测试中执行此操作时,它似乎工作得很好。但是,当我尝试使用 SOAP UI 对此进行测试时,我可以在调试过程中看到由于以下原因而出现运行时异常:

method lookup failed for selector "withDayOfMonth" with signature "(I)Lorg/joda/time/DateTime;"
Run Code Online (Sandbox Code Playgroud)

在相应的 server.txt 日志文件中,我可以看到堆栈跟踪,表明没有这样的方法没有发生

经过进一步研究,我发现我们的应用程序服务器当前使用过时版本的 JodaTime jar (1.2.1),而我的 eclipse 库包含正确的 jar (1.6.2)。

然而,现在的问题是,由于我无法访问 JodaTime 提供的 withDayOfMonth 方法,因此实现我的目标的最佳方法是什么(创建一个新的 DateTime 对象,并将该月的第一天设置为 0)?

java datetime date jodatime method-signature

4
推荐指数
1
解决办法
6938
查看次数