public class Multiplication_table {
public static void main(String[]args){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"X"+j+"="+(i*j));
if(j!=i) System.out.print(",");
}
System.out.println();
}
}
}
import java.util.Scanner;
public class test {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++) System.out.print(" ");
for(int j=1;j<=2*i-1;j++) System.out.print("*");
System.out.println();
}
}
}
//本程序依据x^2+y^2=r^2这个圆公式进行画圆
import java.util.Scanner;
import java.lang.Math;
public class test{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
double r=scan.nextDouble();
for(double x=-r;x<=r;x+=2){ //此处i+=2,可以控制好更像圆,如果i++像椭圆
double y=Math.sqrt(Math.pow(r, 2)-Math.pow(x, 2));
for(double i=-r;i<=r;i++){
//对于x坐标,遍历一边-r到r所有值,如果和y坐标之差的绝对值在0.5的误差范围内,我们就认为此处i=y,应该大衣呢出点
System.out.print((Math.abs(y-i)<=0.5 || Math.abs(-y-i)<=0.5)?'*':' ');
}
System.out.println();
}
}
}
方案一
看了网上的各类版本,都没有实现题目要求,下面代码可以实现题目要求,实现和String的substring完全一样的功能。
在eclipse下编译运行,输出结果是错误的,可以用命令行进行编译运行。主要是因为汉字编码问题。eclipse默认GBK编码,而汉字是Unicode编码。
public class test{
public static void main(String[] args){
System.out.println(substring("中国China",1,3));
}
//按照字节截取字符串实现和String的substring完全一样的功能
public static String substring(String str,int indexStart,int indexEnd){
byte[] bt=str.getBytes();
int[] cnt=new int[bt.length];
int num=0;
//标记每个字节对应原字符串中字符的下标
for(int i=0;i=0;i--){
if(cnt[i]==indexEnd-1){
en=i;
break;
}
}
return new String(bt,st,en-st+1);//使用String的构造函数String(byte[] bytes, int offset, int length)
}
}
输出:
国C
方案二(主要代码)
String str = "中国abc";
byte[] by = str.getBytes();
byte[] dst = Arrays.copyOfRange(by,2,5);
System.out.println(new String(dst));
下面程序输入要求:整数部分8位及以内,小数部分2位及以内。
package assignment;
import java.util.Scanner;
/*
本程序实现整数部分8位及以内,小数部分2位及以内的浮点数用人民币读法表示
比如230432.25表示为贰拾叁万零肆佰叁拾贰元贰角伍分
算法思路:核心思想是解决四位数16种情况的每种人民币读法,这里说的四位数允许有前导0,
再按照前导0读与不读分为两种情况,故相当于共32种情况,解决好这32种情况,核心问题
已经解决!进一步,如果整数部分小于等于9999,则按照不读0的方法转换成人民币读法,如
果整数部分大于等于10000,则低四位按照读0,高四位按照不读0的方法转换成人民币高读法。
*/
public class test{
public final static String HAN="零壹贰叁肆伍陆柒捌玖拾";
public final static String UNIT="十百千";
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个浮点数: ");
String s=scan.next();
System.out.println("这个浮点数转换成人民币读为: ");
solve(s);
}
//四位数读0的情况,不足四位补0补够四位,形参一定是长度为4的字符串,不足四位,用前导0先补齐再作为形参
public static String read_0(String s){
char a=s.charAt(0);
char b=s.charAt(1);
char c=s.charAt(2);
char d=s.charAt(3);
if(s.equals("0000")) return "";//0000
else if(a=='0' && b=='0' && c=='0' && d!='0') return HAN.charAt(0)+""+HAN.charAt(d-'0');//0001
else if(a=='0' && b=='0' && c!='0' && d=='0') return HAN.charAt(0)+""+HAN.charAt(c-'0')+UNIT.charAt(0);//0010
else if(a=='0' && b=='0' && c!='0' && d!='0') return HAN.charAt(0)+""+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//0011
else if(a=='0' && b!='0' && c=='0' && d=='0') return HAN.charAt(0)+""+HAN.charAt(b-'0')+UNIT.charAt(1);//0100
else if(a=='0' && b!='0' && c=='0' && d!='0') return HAN.charAt(0)+""+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(0)+HAN.charAt(d-'0');//0101
else if(a=='0' && b!='0' && c!='0' && d=='0') return HAN.charAt(0)+""+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0);//0110
else if(a=='0' && b!='0' && c!='0' && d!='0') return HAN.charAt(0)+""+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//0111
else if(a!='0' && b=='0' && c=='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2);//1000
else if(a!='0' && b=='0' && c=='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(0)+HAN.charAt(d-'0');//1001
else if(a!='0' && b=='0' && c!='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(0)+HAN.charAt(c-'0')+UNIT.charAt(0);//1010
else if(a!='0' && b=='0' && c!='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(0)+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//1011
else if(a!='0' && b!='0' && c=='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1);//1100
else if(a!='0' && b!='0' && c=='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(0)+HAN.charAt(d-'0');//1101
else if(a!='0' && b!='0' && c!='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0);//1110
else if(a!='0' && b!='0' && c!='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//1111
else return "Error!!!";//不是上述16种情况则返回错误信息
}
//四位数不读0的情况,不足四位补0补够四位,形参一定是长度为4的字符串,不足四位,用前导0先补齐再作为形参
public static String not_read_0(String s){
char a=s.charAt(0);
char b=s.charAt(1);
char c=s.charAt(2);
char d=s.charAt(3);
if(s.equals("0000")) return ""+HAN.charAt(0);//0000
else if(a=='0' && b=='0' && c=='0' && d!='0') return ""+HAN.charAt(d-'0');//0001
else if(a=='0' && b=='0' && c!='0' && d=='0') return ""+HAN.charAt(c-'0')+UNIT.charAt(0);//0010
else if(a=='0' && b=='0' && c!='0' && d!='0') return ""+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//0011
else if(a=='0' && b!='0' && c=='0' && d=='0') return ""+HAN.charAt(b-'0')+UNIT.charAt(1);//0100
else if(a=='0' && b!='0' && c=='0' && d!='0') return ""+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(0)+HAN.charAt(d-'0');//0101
else if(a=='0' && b!='0' && c!='0' && d=='0') return ""+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0);//0110
else if(a=='0' && b!='0' && c!='0' && d!='0') return ""+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//0111
else if(a!='0' && b=='0' && c=='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2);//1000
else if(a!='0' && b=='0' && c=='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(0)+HAN.charAt(d-'0');//1001
else if(a!='0' && b=='0' && c!='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(0)+HAN.charAt(c-'0')+UNIT.charAt(0);//1010
else if(a!='0' && b=='0' && c!='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(0)+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//1011
else if(a!='0' && b!='0' && c=='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1);//1100
else if(a!='0' && b!='0' && c=='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(0)+HAN.charAt(d-'0');//1101
else if(a!='0' && b!='0' && c!='0' && d=='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0);//1110
else if(a!='0' && b!='0' && c!='0' && d!='0') return ""+HAN.charAt(a-'0')+UNIT.charAt(2)+HAN.charAt(b-'0')+UNIT.charAt(1)+HAN.charAt(c-'0')+UNIT.charAt(0)+HAN.charAt(d-'0');//1111
else return "Error!!!";//不是上述16种情况则返回错误信息
}
//小数部分处理,小数最多两位,不足则补足两位,直接类似上面分情况傻瓜便捷式分类
public static String read_decimal(String s){
char a=s.charAt(0);
char b=s.charAt(1);
return HAN.charAt(a-'0')+"角"+HAN.charAt(b-'0')+"分";
}
//把浮点数劈出整数部分
public static String split_to_integer(String s){
int mark=s.length();//标记小数点位置
String integer="";
//寻找小数点位置
for(int i=0;i=4){
for(int i=s.length()-4;i