扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
先把羊带过去
十年的建安网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整建安建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“建安网站设计”,“建安网站推广”以来,每个客户项目都认真落实执行。
回去
把狼带过去
把羊带回去
把白菜带过去
回去
把羊带过去
你用的库版本比较低,我换了方法调用,你再试试看!
第3题程序如下:
(注意:这个程序请在命令行下用java调用执行,在jbuilder IDE里输入汉字会有问题,这个是jbuilder的问题,不是程序的问题。)
package string_parser;
/**
* pTitle: /p
* pDescription: /p
* pCopyright: Copyright (c) 2005/p
* pCompany: /p
* @author unascribed
* @version 1.0
*/
import java.io.*;
import java.util.*;
public class StringParser {
public static void main(String[] args) {
try
{
String delimiter = "||";
System.out.println("input a string:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
Vector str_parsed = new Vector();
int pos = 0;
int next = 0;
while ((next = str.indexOf(delimiter, pos)) != -1)
{
str_parsed.addElement(str.substring(pos, next));
pos = next + delimiter.length();
}
if (pos != str.length())
{
str_parsed.addElement(str.substring(pos));
}
Object[] str_array = str_parsed.toArray();
System.out.println("input string is: " + str);
System.out.println("array length: " + str_array.length);
System.out.println("array elements is:");
for (int i = 0; i str_array.length; i++)
System.out.println(str_array[i]);
System.out.println();
System.out.println("Press ENTER to exit...");
br.readLine();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}}
1、
public class Test{
public float[] a=new float[]{1,5,6,9,8,5,7,12,3,10};
public void paixu(){
float tn;
for(int i=9;i=1;i--)
{
for(int j=1;j=i;j++)
{
if(a[j]a[j-1])
{
tn=a[j];
a[j]=a[j-1];
a[j-1]=tn;
}
}
}
}
public static void main(String[] args)
{
Test t=new Test();
for(int i=0;i=9;i++)
System.out.printf("%2.2f ",t.a[i]);
System.out.printf("\n");
t.paixu();
for(int i=0;i=9;i++)
System.out.printf("%2.2f ",t.a[i]);
System.out.printf("\n");
}
}
测试过了,没问题。基本思路,实例化一个桥类,谁得到桥的可用标志谁过桥。
我第一个看到这个100分的,说实话,知道你是个学生要代码而已,线程类好久没练手了,练习一下而已,否则真不会给你写代码。因为我读书的时候也发过类似的求助,知道什么感受。不懂的时候真的没办法,所以告诉你思路。
package cn.thread;
public class Through_out_bridge {
public static void main(String[] args) {
Bridge b = Bridge.getInstance();//实例化桥
//实例化左端9个人,此时所有人都不能过桥,桥的可以状态标志为不可以用
for (int i = 1; i = 9; i++) {
Thread t = new Thread(new Person(false, i, b));
t.start();
}
//实例化右端12个人,此时所有人都不能过桥,桥的可以状态标志为不可以用
for( int i=1 ;i=12;i++)
{
Thread t = new Thread(new Person(true,i,b));
t.start();
}
//桥的可用状态给左端第10个人,可以自定义给谁
b.state = true;
Thread t = new Thread(new Person(false, 10, b));
}
}
class Person implements Runnable {
public Bridge bridge;//桥
private String hand;//在桥哪一端
int No;//序号
public Person(boolean side, int i, Bridge bridge) {
this.No = i;
this.bridge = bridge;
if(bridge.state)
{
System.out.println(i+"已经过桥。");
}
if (side) {
this.hand = new String("右");
} else {
this.hand = new String("左");
}
}
//过桥方法
public synchronized void through() throws InterruptedException {
if (bridge.state) {
System.out.println(hand+"边第"+No + "在过桥");
bridge.open( No);
} else {
bridge.lock(No);
}
}
public void run() {
try {
Thread.sleep(1000);
// System.out.println(No+hand+" 边已经过桥!");
through();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Bridge {
//可用状态判断true:可用
public boolean state = false;
//自行实例化
public static Bridge getInstance() {
return new Bridge();
}
public synchronized void open(int i) throws InterruptedException {
if (state) {
Thread.sleep(1000);
this.state=true;
notify();
}
}
public synchronized void lock(int i) throws InterruptedException {
if (!state) {
this.state=false;
System.out.println(i + " 在等待.");
wait();
}
}
}
一、输出到控制台
System.out.println(msg); 输出一个字符串, 带换行(\n)。
System.out.print(msg); 输出一个字符串, 不带换行(\n)。
System.out.printf(format, msg); 格式化输出。
注:print要想换行:+ "\n"
二、pirntln、print的运算规则
在遇到第一个字符/字符串之前,所有的数遇到加号即相加。
当遇到任意字符后,加号就变成了字符/字符串的拼接。
代码示例如下:
import java.util.*;
public class A {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = 3;
String ch = sc.nextLine();
System.out.println(2 + 3 + "K" + 4 + 5);//可以用加号不能用减号
System.out.println(2 + 3 + "" + 4 * 5);//*,/,%不会变成拼接,因为根据java运算符的的运算顺序来推得
System.out.println(2 + 3 + "" + 4 / 5);
System.out.println(2 + 3 + "" + 4 % 5);
System.out.println(2 + 3 + "" + (6 % 5));//*,/,%运算加括号和不加括号都一样
System.out.println(2 + 3 + "" + (4 + 5));//"+","-"加括号就不一样了先计算括号里面的然后再按步计算
System.out.println(ch + 2 + 3 + "" + 4);//字符串变量也要遵守规律
}
}
输入:
asd
复制
输出:
5K45
520
50
54
51
59
asd234
复制
解释:
第一个输出2+3+“K”
从左到右先计算2+3,结果为5是int类型,这里的"+"号是计算符号,而后“+”号是当字符串连接符号处理,所以最后int的5和string类型的“K”连接后生成新的string,“5K”
最后一个输出ch+2+3+“”+4
也是从左到右计算,因为ch是字符串变量,而后跟“+”号是当字符串连接符号处理,所以是“asd234”
其后的“+”号都当成了字符串连接符号
总之,当“+”号前后有字符串出现时,就当做字符串连接符号处理了。`
补充:
1.当静态初始化字符串数组或字符串时,也有上述情况。
案例如下:
String sname = "学生" + 1 + 2;//"+"号被当作字符串连接符号处理
String sname = "学生" + (1 + 2);//先计算括号内的,即还没遇到第一个字符或字符串,“+”号还是运算符号。
//一维字符串数组
String[] a = {"xue" + 1,"xue" + 2 + 3};
for (int i = 0;i 2;i ++)
System.out.println(a[i]);
String[] b = {"xue" + 1,"xue" + (2 + 3)};
for (int i = 0;i 2;i ++)
System.out.println(b[i]);
复制

输出:
学生12
学生3
xue1
xue23
xue1
xue5
复制
2.当是char类型时,计算机语言使用ascii。
char a = 'A';//定义了一个字符'A',其ascii值是65
System.out.println(a + a);
System.out.println(a + "" + a);
System.out.println(a + ' ' + a);//''单引号为char类型字符,其中不能空,所以我在这里用了空格(ascii=32);""双引号为字符串,可以为空
System.out.println(a + "李" + a);
复制
输出:
130
AA
162
a李a
复制
总结:
说白了,就是考虑java中运算符的优先级。
三、Java中几种运算符的优先级顺序
倘若没有圆括号加以约束,那么对于数值变量来说,几种运算符的优先级顺序依次为:正号、负号 > 乘号、除号、取余号 > 加号、减号 > 大于号、等号、小于号、不等号 > 各种赋值符号;对于布尔变量来说,相关运算符的优先级顺序依次为:逻辑非 > 等号、不等号 > 逻辑与、或、异或 > 各种赋值符号。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流