1.字符串数组排序
达到效果:'A','B','C'

2.wo jiao shenzhen
字母出现的次数。
如:a(2)j(1)`


3.描述struts的原理

4.Strut 各层用到了什么技术.
评论
6246850 2008-05-16
小白·菜 写道
前面好像都很简单。后面那些原理可难可易,看你怎么忽悠了

恩```
现在已经搞清楚了
小白·菜 2008-05-16
前面好像都很简单。后面那些原理可难可易,看你怎么忽悠了
早起的虫子 2008-05-15
只用了冒泡排序,本人同样可以用快速排序,归并排序...
static void sort(String[] strArray, boolean caseIngore) {
String temp;
int length = strArray.length;
boolean isGreater;
for (int i = 0; i < length - 1; i++) {
for (int j = 0; j < length - i - 1; j++) {
if (caseIngore) {
isGreater = strArray[j].compareToIgnoreCase(strArray[j + 1]) > 0;
} else {
isGreater = strArray[j].compareTo(strArray[j + 1]) > 0;
}
if (isGreater) {
temp = strArray[j + 1];
strArray[j + 1] = strArray[j];
strArray[j] = temp;
}
}
}
}
jelver 2008-05-05
totong 写道
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}




支持,是我也用这种办法,没有必要自己写那些算法,当然自己写可以练练水平,单开发速度而言就不言而俞了.况且现在内存性能也不会影响到哪里
6246850 2008-05-05
yyawyy 写道
晕,深圳太极的面试题

是啊
你知道深圳太极吗?
yyawyy 2008-05-05
晕,深圳太极的面试题
totong 2008-05-03
6246850 写道
totong 写道
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}


受教了```使用Arrays类来操作数组排序

char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);

这段代码可以改成这样
char tax[]=taxis.toCharArray();

写法简单了一些,不错
看到这样的要求,我习惯上就去找get开头的方法了,没注意到还有toCharArray,呵呵
6246850 2008-05-02
totong 写道
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}


受教了```使用Arrays类来操作数组排序

char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);

这段代码可以改成这样
char tax[]=taxis.toCharArray();
totong 2008-05-01
第二题
import java.util.Map;
import java.util.TreeMap;
public class Test2 {
public static void main(String[] args) {
String string = "asdffdghsafagf测试";
Map<Character, Integer> map = new TreeMap<Character, Integer>();
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
for (Character c : map.keySet()) {
System.out.print(c + "(" + map.get(c) + ")");
}
}
}
运行结果:
a(3)d(2)f(4)g(2)h(1)s(2)测(1)试(1)
totong 2008-05-01
第一题,字符串数组版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String[] taxis = { "D", "C", "B", "A" };
Arrays.sort(taxis);
for (String string : taxis) {
System.out.println(string);
}
}
}
单字符串版本
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
String taxis = "dcba";
char[] chars=new char[taxis.length()];
taxis.getChars(0, taxis.length(), chars, 0);
Arrays.sort(chars);
for (char c : chars) {
System.out.println(c);
}
}
}
6246850 2008-04-29
qsrock 写道
第2题写法,不知道效果怎么样?
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class Test2 {

public static void main(String[] args) {
String string="asdffdghsafagf";
String[] strings=string.split("");
Map<String,Integer> map=new TreeMap<String, Integer>();
for(int i=1;i<strings.length;i++){//因为split("")分离字符串会分离出一个""的字符串,而且位置在[0]
if(strings[i]==""){

continue;
}
if(i!=0 && map.containsKey(strings[i])){
int temp=map.get(strings[i])+1;
map.put(strings[i], temp);
}else{
map.put(strings[i], 1);
}
}
printMapKV(map);

}

private static void printMapKV(Map<String, Integer> map) {
Set<String> set=map.keySet();
for(String key:set){
System.out.print(key+"("+map.get(key)+")");
}
}

}


这种写法和我写的应该差不多吧?
6246850 2008-04-29
dongivan 写道
6246850 写道
Illum 写道
第二题是很经典的C语言的例题嘛
去翻翻那本C的课本就会了



没课本啦...都不知道到那去了...
这题我是这样做的
String str = "dcba";
Map tree = new TreeMap();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
if (!tree.containsKey(ch)) {
tree.put(ch,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();
System.out.print(temp.toString() + "(" + tree.get(temp) + ")");
}


不知道你有没有更简单的方法

这样的要求应该用数组吧……
String str = "dcba";
int count[] = new int[26];
for (int i = 0; i < str.length(); i++) {
    int t = (int)str.charAt(i);
    if (t > 64 && t < 91) {
        t = t - 65;
    } else if (t > 96 && t < 123) {
        t = t - 97;
    } else {
        continue;
    }
    count[t]++;

}
for(int i = 0; i < 26; i ++) {
    if( count[i] != 0) {
        System.out.println((char)(i + 97) + "(" + count[i] + ")");
    }
}

手写,不保证能编译过





多谢指教```你的写法比较容易理解
6246850 2008-04-29
阳光晒晒 写道
a=Hash.new 
('a'..'z').each do |tmp|
 a[tmp]=0
 end
"wo jiao shenzhen".scan(/./) do |tmp|
a[tmp]+=1 if(a[tmp])
end
('a'..'z').each do |tmp|
print tmp , "(",a[tmp],")" if (a[tmp]>0)
end


可能我基础差啦```这样的做法我从来没试过噢
6246850 2008-04-29
yuankai 写道
LZ的问题确实没有描述清楚。第一题我这样做不知是不是你想要的结果。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayTaxis {

/**
* 排序
* @param str
*/
public static void taxis(String str){
//去掉字符串中的空格
String arr = ArrayTaxis.removeBlank(str);
StringBuilder sb = new StringBuilder();
List<String> list = new ArrayList<String>();
Object [] arrays = null;
//将字符串保存在List集合中
for(int j = 0 ; j < arr.length() ; j ++){
char c = arr.charAt(j);
list.add(c+"");
arrays = ArrayTaxis.taxisList(list);
}

for(int i = 0 ; i < arrays.length ; i++){
sb.append("'" + arrays[i] +"'");
if(i != arr.length()-1){
sb.append(",");
}
}
System.out.println(sb.toString());
}

/**
* 使用Arrays类将List集合排序
* @param list
* @return Object []
*/
private static Object[] taxisList(List<String> list){
Object[] arrays = list.toArray();
Arrays.sort(arrays);
return arrays;
}

/**
* 去掉字符串中的空格
* @param str
* @return String
*/
public static String removeBlank(String str){
StringBuilder sb = new StringBuilder();
char c = ' ';
for(int i = 0 ; i < str.length() ; i++){
char ch = str.charAt(i);
if(ch != c){
sb.append(ch);
}
}
return sb.toString();
}

/**
* 测试
* @param args
*/
public static void main(String[] args) {
ArrayTaxis.taxis("BCEDA");
}
}



结果是出来啦`````
package com.text;

public class Taxis {

/**
* @param args
*/
public void tax() {
String[] taxis = { "D", "C", "B", "A" };
StringBuffer sb = new StringBuffer();
for (int i = 0; i < taxis.length; i++) {
for (int j = i + 1; j < taxis.length; j++) {
if (taxis[i].compareTo(taxis[j]) > 0) {
String str = taxis[i];
taxis[i] = taxis[j];
taxis[j] = str;
}

}
if (i == taxis.length - 1) {
sb.append("'" + taxis[i] + "'");
} else {
sb.append("'" + taxis[i] + "',");
}

}
System.out.println(sb);
}

public static void main(String[] args) {
// TODO Auto-generated method stub
Taxis t = new Taxis();
t.tax();

}

}
这样是不是看起来要简单一些呢``
yuankai 2008-04-29
LZ的问题确实没有描述清楚。第一题我这样做不知是不是你想要的结果。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ArrayTaxis {

/**
* 排序
* @param str
*/
public static void taxis(String str){
//去掉字符串中的空格
String arr = ArrayTaxis.removeBlank(str);
StringBuilder sb = new StringBuilder();
List<String> list = new ArrayList<String>();
Object [] arrays = null;
//将字符串保存在List集合中
for(int j = 0 ; j < arr.length() ; j ++){
char c = arr.charAt(j);
list.add(c+"");
arrays = ArrayTaxis.taxisList(list);
}

for(int i = 0 ; i < arrays.length ; i++){
sb.append("'" + arrays[i] +"'");
if(i != arr.length()-1){
sb.append(",");
}
}
System.out.println(sb.toString());
}

/**
* 使用Arrays类将List集合排序
* @param list
* @return Object []
*/
private static Object[] taxisList(List<String> list){
Object[] arrays = list.toArray();
Arrays.sort(arrays);
return arrays;
}

/**
* 去掉字符串中的空格
* @param str
* @return String
*/
public static String removeBlank(String str){
StringBuilder sb = new StringBuilder();
char c = ' ';
for(int i = 0 ; i < str.length() ; i++){
char ch = str.charAt(i);
if(ch != c){
sb.append(ch);
}
}
return sb.toString();
}

/**
* 测试
* @param args
*/
public static void main(String[] args) {
ArrayTaxis.taxis("BCEDA");
}
}
qsrock 2008-04-28
好象和某位几乎一样
qsrock 2008-04-28
第2题写法,不知道效果怎么样?
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class Test2 {

public static void main(String[] args) {
String string="asdffdghsafagf";
String[] strings=string.split("");
Map<String,Integer> map=new TreeMap<String, Integer>();
for(int i=1;i<strings.length;i++){//因为split("")分离字符串会分离出一个""的字符串,而且位置在[0]
if(strings[i]==""){

continue;
}
if(i!=0 && map.containsKey(strings[i])){
int temp=map.get(strings[i])+1;
map.put(strings[i], temp);
}else{
map.put(strings[i], 1);
}
}
printMapKV(map);

}

private static void printMapKV(Map<String, Integer> map) {
Set<String> set=map.keySet();
for(String key:set){
System.out.print(key+"("+map.get(key)+")");
}
}

}
阳光晒晒 2008-04-28
a=Hash.new 
('a'..'z').each do |tmp|
 a[tmp]=0
 end
"wo jiao shenzhen".scan(/./) do |tmp|
a[tmp]+=1 if(a[tmp])
end
('a'..'z').each do |tmp|
print tmp , "(",a[tmp],")" if (a[tmp]>0)
end
dongivan 2008-04-28
6246850 写道
Illum 写道
第二题是很经典的C语言的例题嘛
去翻翻那本C的课本就会了



没课本啦...都不知道到那去了...
这题我是这样做的
String str = "dcba";
Map tree = new TreeMap();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
if (!tree.containsKey(ch)) {
tree.put(ch,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();
System.out.print(temp.toString() + "(" + tree.get(temp) + ")");
}


不知道你有没有更简单的方法

这样的要求应该用数组吧……
String str = "dcba";
int count[] = new int[26];
for (int i = 0; i < str.length(); i++) {
    int t = (int)str.charAt(i);
    if (t > 64 && t < 91) {
        t = t - 65;
    } else if (t > 96 && t < 123) {
        t = t - 97;
    } else {
        continue;
    }
    count[t]++;

}
for(int i = 0; i < 26; i ++) {
    if( count[i] != 0) {
        System.out.println((char)(i + 97) + "(" + count[i] + ")");
    }
}

手写,不保证能编译过
阳光晒晒 2008-04-28
a="acdb" 
b=""
a.scan(/./).sort.each{|tmp| b=b+tmp+"," }
b.chomp!(",")
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

6246850
搜索本博客
最近加入圈子
最新评论