java charAt使用问题
这个是我的问题程序importjava.io.BufferedReader;importjava.io.FileReader;importjava.io.Buffered...
这个是我的问题程序
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class newsort
{
public static void main(String args[])
{
try
{
BufferedReader f=new BufferedReader(new FileReader("text.txt"));
StringBuffer sr=new StringBuffer();
String r;
for(r=f.readLine();r!=null;r=f.readLine())
{
sr.append(r);
}
String rr=new String(sr);
String []s=rr.split("\\s+|,");
char c;
char temp;
int a=0;
for(int i=0;i<s.length;i++)
for(int j=s.length-1;j>=i;j++)
{
if((s[j].charAt(0))<(s[j-1].charAt(0)))
{
temp=s[j].charAt(0);
s[j].charAt(0)=s[j-1].charAt(0);
s[j-1].charAt(0)=temp;
}
}
f.close();
BufferedWriter w=new BufferedWriter(new FileWriter("out.txt"));
for(int i=0;i<s.length;i++)
w.write(s[i]);
w.close();
}
catch(IOException e)
{
System.err.println("发异常生:"+e);
e.printStackTrace();
}
}
}
但老出现错误提示
C:\Java\jdk1.6.0_12\hl\2007213120>javac newsort.java
newsort.java:31: 意外的类型
需要: 变量
找到: 值
s[j].charAt(0)=s[j-1].charAt(0);
^
newsort.java:32: 意外的类型
需要: 变量
找到: 值
s[j-1].charAt(0)=temp;
找不出来是什么原因 高手解答下
谢谢 展开
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class newsort
{
public static void main(String args[])
{
try
{
BufferedReader f=new BufferedReader(new FileReader("text.txt"));
StringBuffer sr=new StringBuffer();
String r;
for(r=f.readLine();r!=null;r=f.readLine())
{
sr.append(r);
}
String rr=new String(sr);
String []s=rr.split("\\s+|,");
char c;
char temp;
int a=0;
for(int i=0;i<s.length;i++)
for(int j=s.length-1;j>=i;j++)
{
if((s[j].charAt(0))<(s[j-1].charAt(0)))
{
temp=s[j].charAt(0);
s[j].charAt(0)=s[j-1].charAt(0);
s[j-1].charAt(0)=temp;
}
}
f.close();
BufferedWriter w=new BufferedWriter(new FileWriter("out.txt"));
for(int i=0;i<s.length;i++)
w.write(s[i]);
w.close();
}
catch(IOException e)
{
System.err.println("发异常生:"+e);
e.printStackTrace();
}
}
}
但老出现错误提示
C:\Java\jdk1.6.0_12\hl\2007213120>javac newsort.java
newsort.java:31: 意外的类型
需要: 变量
找到: 值
s[j].charAt(0)=s[j-1].charAt(0);
^
newsort.java:32: 意外的类型
需要: 变量
找到: 值
s[j-1].charAt(0)=temp;
找不出来是什么原因 高手解答下
谢谢 展开
4个回答
展开全部
charAt()的方法返回值是char类型的值,你不能将值赋给值,要赋个一个变量啊,另外你循环也有问题:for(int j=s.length-1;j>=i;j++),这样肯定不行。改后如下:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class newsort
{
public static void main(String args[])
{
try
{
BufferedReader f=new BufferedReader(new FileReader("text.txt"));
StringBuffer sr=new StringBuffer();
String r;
for(r=f.readLine();r!=null;r=f.readLine())
{
sr.append(r);
}
String rr=new String(sr);
String []s=rr.split("\\s+|,");
char c;
char temp[]=null;
char temp2[]=null;
int a=0;
for(int i=0;i<s.length;i++)
for(int j=s.length-1;j<=i;j++)
{
if((s[j].charAt(0))<(s[j-1].charAt(0)))
{
temp[0]=s[j].charAt(0);
temp2[0]=s[j-1].charAt(0);
s[j]=new String(temp2);
s[j-1]=new String(temp);
}
}
f.close();
BufferedWriter w=new BufferedWriter(new FileWriter("out.txt"));
for(int i=0;i<s.length;i++)
w.write(s[i]);
w.close();
}
catch(IOException e)
{
System.err.println("发异常生:"+e);
e.printStackTrace();
}
}
}
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class newsort
{
public static void main(String args[])
{
try
{
BufferedReader f=new BufferedReader(new FileReader("text.txt"));
StringBuffer sr=new StringBuffer();
String r;
for(r=f.readLine();r!=null;r=f.readLine())
{
sr.append(r);
}
String rr=new String(sr);
String []s=rr.split("\\s+|,");
char c;
char temp[]=null;
char temp2[]=null;
int a=0;
for(int i=0;i<s.length;i++)
for(int j=s.length-1;j<=i;j++)
{
if((s[j].charAt(0))<(s[j-1].charAt(0)))
{
temp[0]=s[j].charAt(0);
temp2[0]=s[j-1].charAt(0);
s[j]=new String(temp2);
s[j-1]=new String(temp);
}
}
f.close();
BufferedWriter w=new BufferedWriter(new FileWriter("out.txt"));
for(int i=0;i<s.length;i++)
w.write(s[i]);
w.close();
}
catch(IOException e)
{
System.err.println("发异常生:"+e);
e.printStackTrace();
}
}
}
展开全部
意外的类型,charAt方法取得的是一个类型为char的返回值,这个就相当于一个已知的常量了,不可以给常量赋值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
charAt函数不能用来赋值,也就是说,只能出现在等式的右边。
如果要替换字符串中的部分字符,需要用到replace函数或者replaceAll函数,具体使用请看API。
如果要替换字符串中的部分字符,需要用到replace函数或者replaceAll函数,具体使用请看API。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
charAt(int)不能用来赋值的,你可以把它看作类似getCharAt()这样就清楚只能取值了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询