Java文件读取时是按readline()读取的,然后采用了以空格为分隔符返回字符串的方法
Java文件读取时是按readline()读取的,然后采用了以空格为分隔符返回字符串的方法返回了字符串,现在我需要以作为数字读取--作为字符读取---作为数字读取---作...
Java文件读取时是按readline()读取的,然后采用了以空格为分隔符返回字符串的方法返回了字符串,现在我需要以作为数字读取--作为字符读取---作为数字读取---作为字符读取这样的格式轮流读取这些字符串,请问如何将这些字符串作为字符读取?下面是我写的相关的一段程序。。。
String[]b=new String[n];
a=read.readLine();
b=a.split(" ");
v=new int[n+1];
op=new char[n+1];
for(int i=1;i<=2*n;i+=2){
v[i]=Integer.parseInt(b[i-1]);
}
不是FOR语句那里,我要读取的这段字符串是数字和字符混合的,现在我需要将它们分开读取进不同的分组,比如读取的字符串是5 a 5 i 9 t,我现在需要的是一个分组是数字5,5,9,还有一个分组是a,i,t,事先已经规定第1、3、5……个是数字,第2、4、6……个是字符,现在我需要如何修改这段程序才能做到这么读取呢? 展开
String[]b=new String[n];
a=read.readLine();
b=a.split(" ");
v=new int[n+1];
op=new char[n+1];
for(int i=1;i<=2*n;i+=2){
v[i]=Integer.parseInt(b[i-1]);
}
不是FOR语句那里,我要读取的这段字符串是数字和字符混合的,现在我需要将它们分开读取进不同的分组,比如读取的字符串是5 a 5 i 9 t,我现在需要的是一个分组是数字5,5,9,还有一个分组是a,i,t,事先已经规定第1、3、5……个是数字,第2、4、6……个是字符,现在我需要如何修改这段程序才能做到这么读取呢? 展开
展开全部
第一、读文件 不一定要 用readline,可以一个一个字节读取的,比如FileInputStream中的
int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
你就可以从b中获得单个的字节
其实如果你读取的是一行一行也可以处理的
因为String类有个 toCharArray方法 返回一个 char数组
你就可以实现你要的效果了
int read(byte[] b)
从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。
你就可以从b中获得单个的字节
其实如果你读取的是一行一行也可以处理的
因为String类有个 toCharArray方法 返回一个 char数组
你就可以实现你要的效果了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样弄数组不越界才怪:v的大小为n+1,在for循环里i是可以到2*n的,看来是初学java。
把for循环改一下:
for (int i = 0; i < n; i++) {
v[i] = Integer.parseInt(b[i]);
}
把for循环改一下:
for (int i = 0; i < n; i++) {
v[i] = Integer.parseInt(b[i]);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我帮你写了一个就是可以实现你说的功能哦
public class Test {
public static void main(String[] args) {
String str = "5a5i9t";
char[] digit = new char[10];//定义一个放数字的数组
char[] letter = new char[10];//定义一个放字母的数组
for(int i = 0;i<str.length();i+=2)
{
digit[i] = str.charAt(i);
System.out.print(digit[i]);
}
System.out.println();
for(int i = 1;i<str.length();i+=2)
{
letter[i] = str.charAt(i);
System.out.print(letter[i]);
}
}
}
public class Test {
public static void main(String[] args) {
String str = "5a5i9t";
char[] digit = new char[10];//定义一个放数字的数组
char[] letter = new char[10];//定义一个放字母的数组
for(int i = 0;i<str.length();i+=2)
{
digit[i] = str.charAt(i);
System.out.print(digit[i]);
}
System.out.println();
for(int i = 1;i<str.length();i+=2)
{
letter[i] = str.charAt(i);
System.out.print(letter[i]);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args) {
String line = "5 a 5 i 9 t";
String[] strArray = line.split(" ");
List<Integer> intList = new ArrayList<Integer>();
List<String> charList = new ArrayList<String>();
for (int i = 0; i < strArray.length; i++) {
//关键:当判断下标为偶数时就是数字,其余为字母
if (i % 2 == 0) {
intList.add(Integer.valueOf(strArray[i]));
continue;
}
charList.add(strArray[i]);
}
}
String line = "5 a 5 i 9 t";
String[] strArray = line.split(" ");
List<Integer> intList = new ArrayList<Integer>();
List<String> charList = new ArrayList<String>();
for (int i = 0; i < strArray.length; i++) {
//关键:当判断下标为偶数时就是数字,其余为字母
if (i % 2 == 0) {
intList.add(Integer.valueOf(strArray[i]));
continue;
}
charList.add(strArray[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
BuffedReader br=new BuffedReader(new FileReader(fileName));
String str=br.readLine();
String[] arr=str.split(" ");
br.close();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询