java 如何将用*分隔的字符串存入数组 不需要输出 想通过数组中的值和输入的值进行比较

package tom.jiafei;
import java.io.*;
public class Abc1
{
String
zh1
,mm1
;
boolean zj;

public String getZh1()
{
return zh1;
}
public void setZh1(String a)
{
zh1=a;
try{
File file1=new File("E:\\feng\\apachetomcat\\webapps\\ROOT\\WEB-INF\\classes\\tom\\jiafei","nc.java");
FileReader br = new FileReader(file1);
BufferedReader br1=new BufferedReader(br);
String str = br1.readLine();
String arr[] = str.split("*");
for(int i=2;arr[].length;i=i+3)
{
if(arr[i]==zh1)
{
zj=false;
if(arr[i-1]==mm1)
{
zj=true;
}
}
}
}
catch(IOException e)
{
}
}

public void setMm1(String newMm1)
{
mm1=newMm1;
}
public String getMm()
{
return mm1;
}

public boolean isZj()
{
return zj;
}

}

for(int i=2;arr[].length;i=i+3) 编译时说 length 需要class 求解答 求帮助
又显示这样了。。。 其他的方法也可以 我主要是想用读取的多个字符串和我输入的多个字符串 进行比较 如果相等就执行

第1个回答  2012-05-06
没看你的编程思想,觉得你的问题也不是在逻辑上,应该是在用“*”来分字符串的问题上,给你个方法吧
String str = "asdfa*dfaadf*dfadf";
String arr[] = str.split("\\*");
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
这个是按照你的想法写的,希望对你有帮助,啊哈哈
第2个回答  2012-05-06
1、for(参数初始化;条件判断;更新循环变量)
2、你用数组变量arr来接受截取的结果String arr[] = str.split("*");
综上所述:
for(int i=2;i<arr.length;i=i+3)
注明:没有看你的任何业务逻辑。追问

string zh1=123

if(arr[3].equals(zh1))
像这样 数组元素通过变量名和字符串比较的时候要怎么办?

不想arr[3] 跟zh1 这个字符串比较
而是arr[3]跟123进行比较

追答

你如果是想用你数组的元素和你123来比较大小的话:
if(Integer.parseInt(arr[3]) > Integer.parseInt(zh1))
注明:仍然没有看你的任务业务逻辑

追问

那如果我的值 不是123 而是 abc 呢? 不可以以字符形态进行比较吗?

if(arr[3].equals(zh1))
{
zj=false;
if(arr[2].equals(mm1))
{
zj=true;
} 我是想比较它们是不是相同

追答

建议你先把java基础再深入学习一下:比如equals 和== 的区别java的基本类型的包装类等常识。
这些常识一言两语说不清楚。你baidu或者google都行,很多资料。看完这个问题,你不需要别人回答了。

追问

。。。。 我要来得及看 我也不上网问了 会就告 不会我也不说什么 不用一副什么都知道的样子 谁也不欠你钱 知道人了不起吗?

追答

我只是想告诉你:你连你要问什么都没表达清楚,仅此而已!

第3个回答  2012-05-06
String arr[] = str.split("*"); 改为String arr[] = str.split("u002A"); *在java中需要转义为u002A追问

还是不能编译 提示跟上边一样。。

追答

package jiafei;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class Abc1 {

private String zh1 = null;
private String mm1 = null;
private boolean zj = false;

public String getZh1() {
return zh1;
}
public void setZh1(String zh1) {
this.zh1 = zh1;
File file = new File("D:\\test","test.txt"); //test.txt中内容为123*a*hello*world*hi
String str = null;
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
str = br.readLine();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] arr = null;
arr = str.split("\\u002A");
for(int i = 0; i<arr.length; i++){
//System.out.println(arr[i]);
if(arr[i].equals(this.zh1)){

this.zj = true;
}
}
}
public String getMm1() {
return mm1;
}
public void setMm1(String mm1) {
this.mm1 = mm1;
}

public boolean isZj(){
return zj;
}

public static void main(String[] args){
Abc1 abc1 = new Abc1();
System.out.println("zj原始值为: "+abc1.zj);
abc1.setZh1("hello"); //如果test.txt中包含有hello则zj值为true.
System.out.println("zj修改后值为: "+abc1.isZj());
}

}

运行时,首先将在新建文件夹jiafei,jiafei中新建文件Abc1.java,再将上面的代码复制粘贴到Abc1.java并保存,然后在D盘下新建文件test.txt,并在其中中输入一串用*号隔开的字符串,如123*a*hello*world*hi,最后编译运行Abc1.java即可。
已经最大程度保留你的原始代码了,通过了就赶紧给分啊!

追问

string zh1=123

if(arr[3].equals(zh1))
像这样 数组元素通过变量名和字符串比较的时候要怎么办?

不想arr[3] 跟zh1 这个字符串比较
而是arr[3]跟123进行比较

追答

equals()方法是Object类的的方法,由于所有类(包括自定义的类)都是Object类的子类,所以所有类都继承了(对于自定义的类通常要重写)equals()方法。也就是说所有类的实例都可以使用equals()方法。注意,这里强调的是类,如String,Integer,Float等包装类或者自定义的类,而不是int,char,float等基本类型的数据。
int,char,float等基本类型的数据是通过运算符== 来比较,注意等号两边的数据类型必须相同。
String,Integer,Float等包装类或者自定义的类是通过equals()方法来比较,同样相比较的两个实例必须属于同一个类。
string zh1=123 arr[3]跟123进行比较 可写为"123".equals(arr[3]),或者arr[3]).equals("123")

本回答被提问者采纳
第4个回答  2012-05-07
for(int i=2;arr[].length;i=i+3)
这个地方写错了 。。。
应该写成
for(int i=2;arr.length;i=i+3)

java 如何将用*分隔的字符串存入数组 不需要输出 想通过数组中的值和...
String str = "asdfa*dfaadf*dfadf";String arr[] = str.split("\\\\*");for(int i=0;i<arr.length;i++){ System.out.println(arr[i]);} 这个是按照你的想法写的,希望对你有帮助,啊哈哈

java中用split()分割字符串,把分割后的字段存入一个数组或者集合怎么弄...
import java.io.*;public class MyTest1 { public static void main(String[] args) throws Exception { List<String> ipList = new ArrayList<String>(); List<String> localList = new ArrayList<String>(); List<String> logList = new ArrayList<String>(); List<String> timeList = new ArrayList<St...

java编程如何将字符串每2个分割并用空格隔开存入数组中?
java将字符串每隔2个分割并用空格隔开存入数组的例子如下:String str = "abcdefchakdjfkdjfks";\/\/字符串int m=str.length()\/2;if(m*2<str.length()){m++;}String[] strs=new String[m];int j=0;for(int i=0;i<str.length();i++){if(i%2==0){\/\/每隔两个strs[j]=""+str...

java请任意东西,将空格前的东西存入数组中
String str;\/\/在一个for循环里面,没有进行初始化.这会导致编译不能通过.估计错误在这里

用java如何实现将一些数字分割成每三个一对然后存入数组中 如:strings...
String str = "123648945819399529s";String[] arr = new String[str.length() \/ 3 == 0 ? str.length() \/ 3 : str.length() \/ 3 + 1];int index = 0;for(int i=0; i<arr.length;i++){if(index+3 > str.length()){arr[i] = str.substring(index);}else{arr[i] = str...

java中怎么不停的将输入的数存入数组(不知道长度),以回车结束。_百度知 ...
如果你是接受控制台的输入,建议使用sanner这个类,new一个这样的类,构造方法传入system.in,这个类有一个nextint方法接受数字型输入,至于存储,可以使用list,最后在调用toarray方法转成数组

JAVA中怎样把用户输入的字符串存入数组中?
public static void main(String[] args) { Scanner scan = null;try { scan = new Scanner(System.in);System.out.print( "请输入个数: " );int inputNum = scan.nextInt();if( inputNum <= 0 ) { throw new Exception( "输入有误" );} System.out.println( "请输入数字: " );...

java输入数字,将其存入数组
用StringTokenizer这个类比较简单 import java.io.*;import java.util.*;public class inputNumIntoArray { int numbers[]=new int[20];int num;public static void main(String []args){ inputNumIntoArray getnum=new inputNumIntoArray();String line=new String();DataInputStream read=new ...

java解析用分号隔开的字符串并去掉相同字符
public static void main(String[] args) { String str = "123;456;123;789;12;54;12;456;";\/\/转化为数组 String[] items = str.split(";");List cache = new ArrayList();for(int i=0;i<items.length;i++){ String item = items[i];int count = 0;for(int j=0;j<items....

java请输入数字,将其存入数组中
删除空格这样:String str=" hello world ";str=str.replaceAll("\\\\s+","");这样就没有空格了,不用那么麻烦

相似回答