java编程题

作者&投稿:移脉 (若有异议请与网页底部的电邮联系)
java编程题?~

使用Random类和for循环输出0~100内的随机整数
import java.util.Random;public class RandomPrint{public static void main(String[] args){Random r=new Random(); //不传入种子 for(int i=0;i<8;i++){ System.out.println(r.nextInt(100)); }} }


代码


运行结果
哪里有问题可以提出来

1.package test;

import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

public class Test {
public static void main(String[] args) {
String str = "afdjasdg&&&&&$$jfsjdfjdjjdjdjdjdjdj";
int max=0;
Object chars=null;
Map tree = new TreeMap();

for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if ((ch >= 1 && ch <= 255) ) {
if (!tree.containsKey(ch)) {
tree.put(ch, new Integer(1));
} else {
Integer in = (Integer) tree.get(ch) + 1;
tree.put(ch, in);
}
}
}
Iterator tit = tree.keySet().iterator();
while (tit.hasNext()) {
Object temp = tit.next();

if(max<=Integer.parseInt(tree.get(temp)+""))
{
max=Integer.parseInt(tree.get(temp)+"");
chars=temp;
}
}
System.out.print(chars.toString() + "出现" + max + "次");
}
}
只要用assic码做范围就可以了.任何字符都可以过滤.

2.方法很多,hashmap或是arraylist,数组都可以的.就是对应关系而已.
package test;

public class ListTest {

static String[] to_19 = { "zero", "one", "two", "three", "four", "five",
"six", "seven", "eight", "nine", "ten", "eleven", "twelve",
"thirteen", "fourteen", "fifteen", "sixteen", "seventeen",
"eighteen", "nineteen" };
static String[] tens = { "twenty", "thirty", "forty", "fifty", "sixty",
"seventy", "eighty", "ninety" };
static String[] denom = { "", "thousand ", "million", "billion",
"trillion", "quadrillion", "quintillion", "sextillion",
"septillion", "octillion", "nonillion", "decillion", "undecillion",
"duodecillion", "tredecillion", "quattuordecillion",
"sexdecillion", "septendecillion", "octodecillion",
"novemdecillion", "vigintillion" };

public static void main(String[] argv) throws Exception {
long tstValue = 12345;
ListTest itoe = new ListTest();
System.out.println(itoe.english_number(tstValue));
}
private String convert_nn(int val) {
if (val < 20) return to_19[val];
int flag = val / 10 - 2; if (val % 10 != 0)
return tens[flag] + "-" + to_19[val % 10];
else return tens[flag];
}
private String convert_nnn(int val) {
String word = "";
int rem = val / 100;
int mod = val % 100;
if (rem > 0) {word = to_19[rem] + " hundred ";}
if (mod > 0) {word = word + convert_nn(mod);}
return word;
}
public String english_number(long val) {
if (val < 100) {System.out.println((int) val);return convert_nn((int) val);}
if (val < 1000) {return convert_nnn((int) val); }

for (int v = 0; v < denom.length; v++) {
int didx = v - 1;
long dval = new Double(Math.pow(1000, v)).longValue();
if (dval > val) {
long mod = new Double(Math.pow(1000, didx)).longValue();
int l = (int) (val / mod);
long r = (long) (val - (l * mod));
String ret = convert_nnn(l) + " " + denom[didx];
if (r > 0) {ret = ret + ", " + english_number(r);}
return ret;
}
}
return null;
}
}

实现了所有字符的比对反馈
public static char mainchar(String s) {
Map map = new HashMap();
while (s.length() > 0) {
int count = 0;
char[] temArray = s.toCharArray();
char tem = s.charAt(0);
for (int i = 0; i < temArray.length; i++) {
if (temArray[i] == tem) {
count++;
}
}
map.put(count, tem);

String t = tem + "";
s = s.replaceAll(t, "");
}
Set<Integer> set = map.keySet();
int tem_num = 0;
for(Integer c : set){
if(c>tem_num){
tem_num = c;
}
}
return (Character)map.get(tem_num);
}
}

另英文数字是指什么?

import javax.swing.JOptionPane;

public class Count {

public static void main(String[] args) {
String input = JOptionPane.showInputDialog("Please input :");

if ((input != null) && (input.length() > 0)) {
int result = 0;
char maxChar = ' ';
for (char c : input.toCharArray()) {
int temp = 0;
for (char d : input.toCharArray()) {
if (c == d) {
temp ++;
}
}
if (temp > result) {
result = temp;
maxChar = c;
}
}
JOptionPane.showMessageDialog(null, "Max char : " + maxChar + ",count : " + result);
}
System.exit(-1);
}

}

第二个更简单
做一个hashmap
例如:
import java.util.HashMap;
import java.util.Map;

import javax.swing.JOptionPane;

public class Number {

public static void main(String[] args) {
Map map = new HashMap();
map.put(0, "zero");
map.put(1, "one");
map.put(2, "two");
map.put(3, "three");
map.put(4, "four");
map.put(5, "five");
map.put(6, "six");
map.put(7, "seven");
map.put(8, "eight");
map.put(9, "night");

int input = Integer.parseInt(JOptionPane.showInputDialog("Please input :"));
JOptionPane.showMessageDialog(null, map.get(input));
System.exit(0);
}

}
这个问题还有个更复杂的
就是当数字大于10,100,1000,10000。。。。
要用到million,billion等。。

很简单,
两个题目的时间复杂度都是O(n)。
其中n为字符串长度,或数字长度。
代码我就不写了。
给你发伪代码吧。

第一题:
int[] num=new int[26];//这里假设只有字母,如果含有其他字符
//自己扩大数组的大小。例如长度改为'~',这样就能包含所有字符了。
//这个数组储存每一个字符出现的次数。
//然后初始化数组,所有都赋值0.
for(int i=0;i<num.length;i++)num[i]=0;
//将字符串的所有字符变成小写。
//String 类有自己的库函数可以办到。
//遍历字符串,将它当做字符数组对待,
//将该字符对应的数组位置上的记录加一。
for(char c:str.toCharArray())//.....好像有这个函数吧?反正有一个函数
//是可以将它变成字符数组的。

//最后,找出num数组中记录最大的位置,该位置对应的字符就是你要的字符。
//例如,如果num[0]对应的是a的次数并且他的值最大,那么就是a

第二题,首先判断是否大于20.因为20以下都有单独的名称。
这写名称你可以储存在数组里。
n[0]=zero。n[1]=one....

另外弄一个数组,这个数组储存例如thousand,million····之类的。
同时也可以需要储存20,30,40---90对应的英文。
接下来是切分,利用递归。
每4位分一下。也就是如果除以1000大于0.然后就继续除。
并且记录除以1000后结果大于1的次数。
例如12345.那么次数是count=1.
那么最后一次除了的结果是12,这个如果小于21可以直接得到一个字符串,例如twelve。
如果大于20,那么除以100,得到的是百位,如果是0不管,如果不是0,那么取得对应的英文数再在该字符串上加上百的英文。除以100的余数再除以10,得到十位。一次类推。最后得到的字符串是本次需要的结果,
例如twelve。
然后根据本次的count可以得到节点值,例如thousand。

这样递归处理,最后结果就可以得到了。
嗯,这里只有思想。没给你写代码。
需要的话再说吧。

第二题就不说了,单位换算,不难,但很烦!

关于第一题,我是这样写的,希望大家多指导

/* 标志位,判断是否退出循环 */
boolean b = true;
/* 循环接受用户输入,直到用户输入! */
while(b){
System.out.println("请输入,退出输入!:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {

String str = br.readLine();

if("!".equals(str)){
// 退出
b = false;
}else{
/* 判断是否为空 */
if(!"".equals(str)){
/*以Map对象保存结果*/
Map<Character,Integer> rs = new HashMap<Character,Integer>();

/*出现最多的字符*/
char c = 0 ;

/*出现的次数*/
int count = 0;

for(int i = 0 ; i < str.length() ; i ++){

char tc = str.charAt(i);
/*已经存在,修改*/
if(rs.containsKey(tc)){
int tn = rs.get(tc);
tn++;
rs.put(tc, tn);
if(tn >= count){
count = tn;
c = tc;
}
/*不存在,保存*/
}else{
rs.put(tc, 1);
if(0 == count){
c = tc;
count = 1;
}

}
}

System.out.println("出现次数最多的字符为:" + c +"\t出现"+count+"次");
}else{
System.out.println("输入为空!");
}

}

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

String test=null;
String[] Seconds={"","one","two","three","four","five","six","seven","eight","nine"}; //10
String[] Single={"zero","one","two","three","four","five","six","seven","eight","nine"}; //10
String[] ten={"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","ninteen"};//10
String[] dou={"twenty","thirty","fourty","fifty","sixty","seventy","eighty","ninty"};//8
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
try {
test=br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(test.length()==1){
int i=Integer.parseInt(test);
System.out.println(Single[i]);

}else if(test.length()==2){
if(test.startsWith("1")){
int i=Integer.parseInt(test.substring(1));
System.out.println(ten[i]);
}else{
int first=Integer.parseInt(test.substring(0,1));
int second=Integer.parseInt(test.substring(1));
System.out.println(dou[first-2]+" "+Seconds[second]);
}

}
//------------------------------------------------------------
String a="abbbbccca我aabccc acbbb?!@#$%^&*()";
HashMap h=new HashMap();
HashSet hs=new HashSet();
for(int i=0;i<a.length();i++){
//hs.add(String.valueOf(a.charAt(i)));
char cha=a.charAt(i);
String key=String.valueOf(cha);
h.put(key, new Integer(0));
}
for(int i=0;i<a.length();i++){
//hs.add(String.valueOf(a.charAt(i)));
char cha=a.charAt(i);
String key=String.valueOf(cha);

Integer num=(Integer)h.get(key);

num=num+1;

h.put(key, num);
}
System.out.println(h.toString());
Map.Entry[] entrys=(Map.Entry[]) h.entrySet().toArray(new Map.Entry[h.entrySet().size()] );
Arrays.sort(entrys,new Comparator<Map.Entry>(){
public int compare(Map.Entry m1,Map.Entry m2){
Long l1=Long.valueOf(m1.getValue().toString());
Long l2=Long.valueOf(m2.getValue().toString());
return l1.compareTo(l2);
}
});
for(int e=0;e<entrys.length;e++)
System.out.print(entrys[e]+" ");
System.out.println("出现频率最多的字符是"+entrys[entrys.length-1]);


AVA配置问题!!!
基本配置 推荐配置 CPU P4 2.4G双核 P4 3.0G双核 内存 1G 2G 显卡 Geforce 7600GT或同级显卡以上 Geforce 8600GT或同级显卡以上 操作系统 WindowsXP ,Vista(32bit) WindowsXP ,Vista(32bit)DIRECT X Direct X 9.0c Direct X 9.0c

AVA枪问题:在AVA步兵枪里面哪个最容易掌握又最好?(除了AK和M4)_百度...
G36R,稳定比M4差稍微一点但威力比M4大,弹道很稳,只是不能改装 AK74M号称蹲打枪神,蹲着打是三代枪,跑起来打就是一代的AK(稳定性)

AVA下载问题!~求解 急啊!!
A.V.A马上就是腾讯的了 韩国的是高配置 中国电脑不行 再说你下载了也不能注册要护照 ==

速度我给分数,AVA配置问题
晕,该说的一个都没说,不该说的说了一大堆,说一下你显卡、内存。

关于进入AVA的问题
您好:您这是属于掉线了,腾讯AVA的服务器很不稳定,我也掉线过,这都是腾讯的服务器人多+不稳定造成的。

AVA下载问题,好的给50分!~~~
建议楼主去改个显卡最好是新版的。能玩AVA可能有一点卡不过不影响游戏的 祝楼主游戏愉快

AVA配置问题
遗憾但确切的告诉你,进去肯定是卡到你不能玩~ AVA对显卡配置要求特别高 像你的显卡游戏特效全关都基本玩不起来 其余内存配置也已经有点跟不上了。真的想玩去网吧或者重新买台吧... AVA现在就可以玩 激活下很简单的,去qq网吧就能找管理帮你激活~公测也很快就会开估计9月肯定会开了 ...

AVA游戏问题 急啊~~速度来
很正常那个,我在网吧里玩,这个地方都要等很长时间,特别是第一次玩一个地图的时候,因为游戏要加载新地图的数据,这个时间会很长。你看到他们跳掉了,其实他们进到游戏后,会在一定的时间里等你,如果有人很卡的话,这个等人的时间也可能比较长。因为在测试阶段,第一次我用笔记本玩的时候,装好...

AVA兵种问题
那你还想要多少个兵种?? 肯定不会再出了...要出出医疗兵算啦 想要兵种多..去玩战地2算了...7个兵种 突击兵 医疗兵 狙击手 特种部队 工兵 反战车兵 补给兵 还有武装直升机 运输机 战斗机 战斗轰炸机 坦克 装甲车 导弹车 突击车 这些全部是玩家可以控制的..64人同时在线游戏...AVA CF也就...

关于AVA战队问题:加入公会的成员可以被踢出战队的吗?一般由谁操作?_百 ...
楼主您好 如果是战队。只有会长和副会长可以T人。YY的话马甲有权限的都能撤你的马甲。(这个看你是什么马甲,会员马甲只要权限比你高的都能撤你的马甲) 逝呿。 很荣幸的为您解答。 祝游戏愉快! 如有疑问请继续追问。我会在收到的第一时间为您解答。

天柱县13650592269: 简单java编程题 -
不秒洛雅: 第一题 public class A{ public static void main(String[] args){ int i,j,k,x; for(x=100;x { i=x/100; j=x/10%10; k=x%10; if(x==i*i*i+j*j*j+k*k*k) System.out.println(x); } } } 第二题 public class A{ public static void main(String args[]){ int sum=0; for(int j=2;j int x=...

天柱县13650592269: java经典编程题目
不秒洛雅: import java.util.*; import javax.swing.JOptionPane; class abc { public static void main(String args[]) { for(int i=10;i>0;i++) { max(); } } public static void yuan() // 计算圆的面积 { double x = Double.parseDouble(JOptionPane.showInputDialog("请输...

天柱县13650592269: java编程题 -
不秒洛雅: import java.util.Scanner; public class Test1 { /** * @param args */ public static void main(String[] args) { System.out.print("请输入数字:"); Scanner s=new Scanner(System.in); String data=s.next(); int i=Integer.parseInt(data); int num=0; for(int i1=1;i1<=i;i1++){ num=num+i1; } System.out.println(num); } }

天柱县13650592269: JAVA编程的几个简单题目 -
不秒洛雅: 第一个: import java.util.Scanner; import java.util.*; public class Validate { private int n; /*count_6、count_7、count_8 用来记录收敛那个数字的个数,在这里我记录只要他出现了10次我就认为他收敛与他了 * 还没想到更好的办法,如果不设置这个...

天柱县13650592269: 简单的Java编程题
不秒洛雅: import javax.swing.*;import java.awt.*;public class TableDemo { private JFrame f; private JTable table; private String[][] str; private String[] column={"姓名","性别","籍贯","年龄"}; public TableDemo() { f=new JFrame(); Container con...

天柱县13650592269: java编程题 -
不秒洛雅: public class Area { public Area(){} //圆public static double round_area(double r){ return 3.1415926*r*r; } //三角形 public static double trigon_area(double b,double h){ re...

天柱县13650592269: 一道java编程题 -
不秒洛雅: public class Test { public static void main(String[] args) { String str1="addActionListener"; String str2="Acti1on"; int result=str1.indexOf(str2); if(result<0...

天柱县13650592269: JAVA编程题
不秒洛雅: jiu=(jiu+1)/2中,jiu就是李白酒壶中原有的酒,+1表示遇见花就加进去一斗,/2表示又喝掉一半,用for循环语句重复五次. 你想嘛,他第五次喝时就是(0+1)/2,这是他第四次时壶里面剩下的酒,乘以2再减去1,就喝完了,第四次时就是(0.5+1)/2,这是第三次剩下的酒,乘以2再减去1,就是第四次喝了之后剩下的,同样的以此类推,第一次时就是(..../2),而这个就是他原来壶里面有的酒了

天柱县13650592269: java编程题
不秒洛雅: public class TestExceptionDemo {public static void main(String[] args) {System.out.println("这是一个异常处理的例子"); try { int i = 22; i = i / 0; } catch (ArithmeticException e) { // TODO: handle exception System.out.println(e.getMessage()); } }}

天柱县13650592269: 求助简单的JAVA编程题 -
不秒洛雅: import java.io.*;class test{public static void main(String []args) { String []a={"January","February","March","April","May",...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网