java新手求教代码问题

mxy414432523 2017-12-01 12:14:51
class StringTest
{
public static void main(String[] args)
{
String[] str={"nba","abc","cba","zz","qq","haha"};
for (int x=0;x<str.length-1;x++)
{

for (int y=x+1;y<arr.length;y++)
{
if (str[x].compareTo(str[y])>0)
{
change(str,x,y);
}
System.out.print(str[x]+",");
}
}
public static void change(String arr,int x,int y)
{
String temp=str[x];
str[x]=str[y];
str[y]=temp;

}
}
}


编译通不过,请问各位大佬错在哪里?
...全文
1220 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
调试然后根据提示找错这是学习的有效途径。
youyouke 2018-01-14
  • 打赏
  • 举报
回复
String[] str={"nba","abc","cba","zz","qq","haha"}; 这不是应该对str操作吗,所以你将for 语句中的arr.length改为str.length就可以了。
linovce 2018-01-11
  • 打赏
  • 举报
回复
.change方法里面String 类型参数要换成String[]的类型,第二个for循环里面的arr咋来的,要改成str吧
酸甜苦辣咸 2017-12-27
  • 打赏
  • 举报
回复
public static void main(String[] args) { String[] str = { "nba", "abc", "cba", "zz", "qq", "haha" }; for (int x = 0; x < str.length - 1; x++) { for (int y = x + 1; y < str.length; y++) { if (str[x].compareTo(str[y]) > 0) { change(str, x, y); } } } for (String string : str) { System.out.print(string+","); } } public static void change(String[] str, int x, int y) { String temp = str[x]; str[x] = str[y]; str[y] = temp; }
tangyidexiao 2017-12-26
  • 打赏
  • 举报
回复
ECLIPSE编译都过不了吧
嘴角轻扬30 2017-12-19
  • 打赏
  • 举报
回复
class StringTest { public static void main(String[] args) { String[] str = {"nba", "abc", "cba", "zz", "qq", "haha"}; for (int x = 0; x < str.length - 1; x++) { for (int y = x + 1; y < str.length; y++) { if (str[x].compareTo(str[y]) > 0) { change(str, x, y); } System.out.print(str[x] + ","); } } } public static void change(String[] str,int x,int y) { String temp=str[x]; str[x]=str[y]; str[y]=temp; } }
hugechun 2017-12-18
  • 打赏
  • 举报
回复
str[x]>str[y]>0 能判断出什么呢 各位大神
Super_King_ 2017-12-17
  • 打赏
  • 举报
回复
public class Test1 {
    /*1.静态方法放在main方法外面
    * 2.change方法里面String 类型参数要换成String[]的类型,要跟main方法里面传的值对应
    * 3.change方法里面arr换成str,调用参数名要一致
    * 4.for循环里面的arr.length要换成str.length,你上面定义的数组名是str,下面为啥写arr
    * 细心点吧全是错误,一看就是没认真,估计这段代码你也是粘贴的,然后名字都没改
    */
    public static void main(String[] args) {
        String[] str = {"nba", "abc", "cba", "zz", "qq", "haha"};
        for (int x = 0; x < str.length - 1; x++) {

            for (int y = x + 1; y < str.length; y++) {
                if (str[x].compareTo(str[y]) > 0) {
                    change(str, x, y);
                }
                System.out.print(str[x] + ",");
            }
        }
    }

    public static void change(String[] str, int x, int y) {
        String temp = str[x];
        str[x] = str[y];
        str[y] = temp;
    }
}
天之上有什么 2017-12-02
  • 打赏
  • 举报
回复
你编译时难道都不会报错的吗
lianjiaoku 2017-12-02
  • 打赏
  • 举报
回复
java竹雨 2017-12-01
  • 打赏
  • 举报
回复
真心到处都有问题
李德胜1995 2017-12-01
  • 打赏
  • 举报
回复
阳光纯粹 2017-12-01
  • 打赏
  • 举报
回复
class test8 { private static String[] str; public static void main(String[] args) { str = new String[] {"nba","abc","cba","zz","qq","haha"}; for (int x=0;x<str.length-1;x++) { for (int y=x+1;y<str.length;y++) { if (str[x].compareTo(str[y])>0) { change(str,x,y); }} System.out.print(str[x]+","); }} public static void change(String [] arr,int x,int y) { String temp=str[x]; str[x]=str[y]; str[y]=temp; } } 说实话,你运行时,你的开发软件没报错吗
thinking code 2017-12-01
  • 打赏
  • 举报
回复
class StringTest {
public static void main(String[] args) 
{
String[] str={"nba","abc","cba","zz","qq","haha"};
for (int x=0;x<str.length-1;x++)
{

for (int y=x+1;y<str.length;y++)
{
if (str[x].compareTo(str[y])>0)
{
change(str,x,y);
}
System.out.print(str[x]+",");
}
}
}
public static void change(String[] str,int x,int y)
{
	String temp = str[x];
	str[x] = str[y];
	str[y] = temp;
	
}
}
mxy414432523 2017-12-01
  • 打赏
  • 举报
回复
谢谢各位大佬
sinat_40790108 2017-12-01
  • 打赏
  • 举报
回复
change方法中的str改为arr
sinat_40790108 2017-12-01
  • 打赏
  • 举报
回复
并且change方法放在main方法外
自由自在_Yu 2017-12-01
  • 打赏
  • 举报
回复
错的太多了
public class Test {
	public static void main(String[] args) {
		String[] str = { "nba", "abc", "cba", "zz", "qq", "haha" };
		for (int x = 0; x < str.length - 1; x++) {

			// for (int y=x+1;y<arr.length;y++)
			for (int y = x + 1; y < str.length; y++) {
				if (str[x].compareTo(str[y]) > 0) {
					change(str, x, y);  //change 方法第一个参数是String数组,不是String
				}
				System.out.print(str[x] + ",");
			}
		}
	}
        //change方法定义在main方法外面
	public static void change(String[] str, int x, int y)  //变量名str和方法里面保持一致
	// public static void change(String[] arr, int x, int y) 
	{
		String temp = str[x];
		str[x] = str[y];
		str[y] = temp;

	}
	// }
}
sinat_40790108 2017-12-01
  • 打赏
  • 举报
回复
方法的参数string数组 少些了括号
自由自在_Yu 2017-12-01
  • 打赏
  • 举报
回复
for (int y=x+1;y<arr.length;y++)-->for (int y=x+1;y<str.length;y++)
加载更多回复(3)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧