我想要做的是读取.java文件,并选出所有标识符并将它们存储在列表中.我的问题是.split()方法.如果按原样运行此代码,您将获得ArrayOutOfBounds,但是如果您从"."更改分隔符.除此之外,代码有效.但是我需要用"."解析的行.那么我还有另一种方法可以做到这一点吗?
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class MyHash {
private static String[] reserved = new String[100];
private static List list = new LinkedList();
private static List list2 = new LinkedList();
public static void main (String args[]){
Hashtable hashtable = new Hashtable(997);
makeReserved();
readFile();
String line;
ListIterator itr = list.listIterator();
int listIndex = 0;
while (listIndex < list.size()) {
if (itr.hasNext()){
line = itr.next().toString();
//PROBLEM IS HERE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
String[] words = line.split("."); //CHANGE THIS AND IT …Run Code Online (Sandbox Code Playgroud) 可能重复:
Java中的split()方法不适用于点(.)
我是java的新手.我想从"."中拆分一个字符串.(点)并逐个获取这些名称.但是这个程序给出了错误: "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0"
请帮助我
String input1 = "van.bus.car";
System.out.println(input.split(".")[0]+"");
System.out.println(input.split(".")[1]+"");
System.out.println(input.split(".")[2]+"");
Run Code Online (Sandbox Code Playgroud) 这是一个函数,它接受一个长字符串并返回一个分段的字符串.
问题是k是空的.为什么split()功能不起作用?
private String ConvertSentenceToParaGraph(String sen) {
String nS = "";
String k[] = sen.split(".");
for (int i = 0; i < k.length - 1; i++) {
nS = nS + k[i] + ".";
Double ran = Math.floor((Math.random() * 2) + 4);
if (i > 0 && i % ran == 0) {
nS = nS + "\n\n";
}
}
return nS;
}
Run Code Online (Sandbox Code Playgroud) 我想为角色分割一个字符串,^但它不起作用.我有以下代码:
String numberBase10 = "3.52*10^2";
String[] vector = numberBase10.split("^");
System.out.println("numberBase10: " + numberBase10);
System.out.println("Vector[0]: " vector[0]);
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
numberBase10: 3.52*10^2
Vector[0]: 3.52*10^2
Run Code Online (Sandbox Code Playgroud)
如果我尝试访问vector [1],我会得到错误IndexOutOfArray.
我必须放任何转义字符,以便拆分工作^吗?
谢谢
一个非常愚蠢的问题,我知道"和.都是特殊字符,但为什么使用split()函数时会有区别?
所以这是代码
String.split("\"");
String.split("\\.");
Run Code Online (Sandbox Code Playgroud)
它们都有效,但为什么第一行代码只有一个"\"而第二行有两个?
编辑:如果我这样做会发生什么
String.split("\\"");
Run Code Online (Sandbox Code Playgroud)
结果是否相同
String.split("\"");
Run Code Online (Sandbox Code Playgroud)